カプセル化と情報隠蔽は違う

そうなのか。知らなかった。まったく同じものだと思ってた。「カプセル化」という用語には「外から見えなくする」といった意味合いがないらしい。

自分の言葉でまとめてみる。

カプセル化
グループ化とか分離とか抽象化に主眼。要するに責務が明確なクラスを作ること。
情報隠蔽
複雑性の軽減や疎結合が目的。コンポーネントの詳細、実装、データ構造を隠蔽すること。

分析・設計工程ではOOより従来手法に軍配?

半年くらい前ににかかれたものらしい。
http://www3.ric.co.jp/sol/pdfs/0310_ki_regasi.pdf
http://www3.ric.co.jp/sol/pdfs/0311kikou2.pdf

どうだろう?Javaがプレゼンテーション層でこそその利点を発揮できるなんてちょっとちがうよね。リンク先にはでてこないけどドメイン層といわれる部分にこそJavaを使いたいのだ。
でもオブジェクト指向技術の利点を使って作られた業務アプリケーションでうまくうごいているのってみたことない。もちろん成功事例はあるのだろうけど。自分の会社以外のシステムを見るっていう機会がないから。(ああ、こんこと書いたら自分の会社ではうまくいってないみたいじゃないか...)

S2JDBCを少しさわる

次のようなインタフェースがある。

今日読んだこれに、「コードを見るときはクラスの構造よりも最初にクラスの責務(振る舞い)に着目しろ」みたいなことが書いてあったので素直にそれにしたがってインタフェースに着目。クライアント側が使うものだしこれが大事に違いない。とてもシンプル。org.seasar.framework.exception.SQLRuntimeExceptionを投げる。

でもこれも見ておく。重要なデータをもつし。なんとなくイメージがわく。