実践的オブジェクト指向設計入門23
オブジェクト指向設計は、オブジェクトそのものについて着目するだけではなく、オブジェクトの関連についても熟考が必要です。情報システムにおいて設計するオブジェクト群が、単独で存在する事は稀で、互いになんらかの関連を持ちます。従って、オブジェクトの関連についても分析と設計が必要なのです。
オブジェクト指向方法論OMTでは、関連のたどられ方の分析が提唱されています。設計段階では、オブジェクトモデル中の関連を実装する戦略を明確化する必要があります。オブジェクト間の関連を明確にしておかないと、実装の詳細に意識を奪われ設計が失敗します。関連は双方個のものが大半ですが、本当にそうなのかよく分析すると、システムの流れと本質がよく分かります。具体的には、関連の方向と多重度が重要です。
関連には、互いに参照する双方向と、どちらかが参照しかしない片方向があり得ます。普通に考えて、双方向の場合が多いと思うでしょうが、同じ双方向でもオブジェクト群としてみたとき、設計によりパス数が異なります。上手く設計すれば、同じ操作をするにも効率よく操作できます。ですが、あえて余分なオブジェクトを加えることにより、より柔軟で再利用性が高い設計が可能となる場合もあります。GoFデザインパターンがよい例です。ただし、余分なオブジェクトを無目的に追加しても、混乱をもたらすだけです。よく注意しましょう。
関連は多重度も大切です。主となるオブジェクトが1、使われるオブジェクトが多数というのがよくあるパターンです。他にも、多対多の関係のオブジェクトもよくありますが、関連オブジェクトを追加して、多対1の関係にすることを検討しましょう。そういった関連の重要さはデータベース設計となんら変わりません。
纏めます。個々のオブジェクトを設計するだけではなく、オブジェクト間の設計も必要だと言う事です。設計と実装の違いはこういった所で現れます。続く...