2007年07月01日

基礎 第9回: オブジェクトの関連 ― 包含

 今回は「包含」について考えます。
包含は非常に自然な考え方です。
また、実例が身近に溢れていますので、すんなり理解していただけると思います。
非常に簡単なので、記事も短いです。
しかし、簡単なことなのですが、これが実はすごく奥が深いものなのです。

コンテンツ

  1. 包含って
  2. 最後の(かもしれない)カレー
  3. コンポジション
  4. わかりやすいですね
  5. オススメ

包含って

 包含は、実は前回お話しした依存の一種です。
ただ、包含は頻繁に現れる依存関係であり、また特に重要ですので、別に挙げました。
ちょっとお話しするだけで、これはご納得いただけることと思います。

 さて。えー、包含とは包み含むことです。
読んで字のごとしなんですが、これだけでは全然ピンときませんね。
またまた例を使って考えてみましょう。

最後の(かもしれない)カレー

 はい、今回もカレーです。
ここで、カレー大好きさん(私もそうなんですが)には、ちょっと残念なお知らせがあります。
今回と次回、あとは「まとめ」くらいで、基礎編は終了の予定です。
ですので、コンスタントにカレーを例にとるのは、これで最後かもしれません。

 さてさて、カレーにはいろいろな具が入ってますね。
じゃがいも、にんじん、たまねぎ、肉など。

 この状態、まさに包含です。
カレーオブジェクトは、これらの具オブジェクトを包含しているのです。
これを集約ということもあります。
カレーオブジェクトの中に、いろいろな具オブジェクトが集約されているわけです。
簡単ですね。
見たまんまです。

コンポジション

 集約の一種に、コンポジションというものがあります。
コンポジット集約とかいうこともあります。
これは、集約されている状態でしか存在しないものをいいます。

 例えば本のページ。
本に含まれているからこそ、「ページ」ですよね。
ばらばらだったら、ただの紙切れです。
ページじゃありません。
では、クレジットカードの請求書を見てみてください。(ほんとに見なくてもいいですけど)
明細表がありますよね。
これは明細の集まりなわけですが、これは請求書に含まれていてはじめて意味をなします。
これをハサミでばらしたりしたら、もう意味のないゴミですね。
このように、本来一つのものなんだけど、ばらして考えてみたという意味での包含が、コンポジションです。

わかりやすいですね

 包含とは、包み含むこと。
ご納得いただけましたか?
包含は、このように身近によくある、わかりやすいものです。
当たり前すぎてあまり意味のないことのように思えるかもしれません。
しかし、これをちゃんと自分の考え方として駆使すると、実はかなり強力なアイテムになります。
次回は、それについて考えてみたいと思います。

オススメ

 開発者の方向けのオブジェクト指向入門には、オブジェクト脳のつくり方がオススメです。
オブジェクト指向でソフトウェアを考えるためのコツがわかります。
基本的なことをひととおり、比較的楽に理解することができるでしょう。
posted by craftsman at 17:32 | 東京 🌁 | Comment(0) | TrackBack(0) | 基礎編
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/46332537
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。