[奇妙なクラスと実世界]
2.銀行アプリケーションの事例
2.5 オブジェクト指向が描くモデル
オブジェクト指向が描くモデルも、このような役割分担をさらに推し進めたものと考えると、あながち不自然ではありません。
先ほどは「カード」や「カレンダー」が能動的に何かの振る舞いをする世界はとても奇妙だと書きました。
しかしこれに「係」をつけるとどうでしょう?
「カード係」「カレンダー係」、すなわち「カードに関する仕事をする人」や「カレンダーに関する仕事をする人」となります。
このような細かい役割を持った「xx係」が協調して全体として一つの仕事をするのです。
ただしお互いの仕事の中身はあまり良く知りません。
人に与える仕事をこのように分割したとすれば、次のようなメリットがあるでしょう。
これはオブジェクト指向によるソフトウェア構造上のメリットと全く同じです。
またここで情報隠蔽について考えてみましょう。
実世界に存在する実体や概念が、自身の持つ情報を外部に対して隠蔽するケースはほとんどありませんが、それを担当する人が、外部に情報を隠蔽することはしばしばあります。
例えば、金庫にいくら入っているかを決して教えてくれない「金庫番」や、煩雑な伝票の起票手続きや伝票のフォーマットを見せずに仕事を遂行してくれる「事務員」などがこれに相当します。
実世界に着目して、中核となるクラスを導出する段階では、この情報隠蔽の視点はさほど重要ではありません。しかし振る舞いの分析、すなわちクラスの役割分担を考えるときには、この情報隠蔽の視点が多いに有効となるのです。
© 1999 OGIS-RI Co., Ltd. |
|