Flex、AIR、Java、Androidなど

1月21日 2009

Compositeパターンの理解

Posted by: tachibana In: プログラミング

※この記事は私が本を読み、頭で考えたことを将来完全に理解してから見直して笑ったりするためにそのまま羅列したものです。故に間違った理解や意味不明なこともたくさん出てくると思います。プログラミングを教えるような立場の方には有益かも(笑)?

Compositeパターンの理解

入れ子構造を実装する為のデザインパターン?その入れ子になった構造に登場するモノ全てのスーパークラスとなるクラスを継承させることでメインクラス上では同じものとして扱うこと。

便宜上メソッドはスーパークラス上にて定義し、サブクラスがそれを実装できない場合には抽象メソッドで例外を投げるようにしておく。

定義は状況によって様々らしい。サブクラスで定義することもあれば、例外を投げないようにすることもある。

パターンで説明していることも利点も分かるのだが、「再帰的」という言葉の意味がぼんやりとしか分からん。。

ハノイの塔を使って説明されていた。

ハノイの塔の解法は理解できるが、どの部分が再帰なの?

というかここでの「再帰的」の意味は単純にそのアルゴリズム(この場合はフィールドやメソッドの定義といった方が適切か)を定義したものを他のものにも適用できることを言うのか?若しくはモノの中にそのモノがあるような状況?また、モノの階層が増えても簡単に解を出せるような構造のこと?ある親の子が更にその子を子として持つようなことができる構造のこと?

イマイチ分からん。

自分なりの結論:

プロジェクト内にいくつかのクラスから生成されたインスタンスがあるが、場合によってはそれらを周りから見て同じもの(厳密には等しくない)として見たいと思うときがある。そのような時には両方に同じ抽象クラスを継承させ、その型でメインクラスに組み込む。こうすることで同じように扱うようにできるが、モノによって実装するメソッドが変わってくるので実装が不可能な時は例外を投げるようにするなどして対策が必要。
EasyFreeAds Blog News Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google Yahoo Buzz StumbleUpon

No Responses to "Compositeパターンの理解"

Comments are closed.

Categories

 

2017年9月
« 4月    
 123
45678910
11121314151617
18192021222324
252627282930  

About

Author: tachibana

  • ちょっとしたことはTwitterに書いています。こっちはアプリの公開等の時に更新されます。
  • 最近はもっぱらJavaとObjective Cです。AS3は飽きました。
  • スクリプト言語ではPerlが好きでしたが最近はGAE/Jで何でもやってます。
  • Linuxは自宅サーバー建てるのがやっとのレベルです。前の会社で何日も徹夜してやったのはいい思い出です。
  • アプリへのご要望などご意見等ありましたらお気軽にご連絡下さい。

Alternative content here