【復刻版】未来が予測できないときのポリモーフィズムはどれだけ効果的か?
ポリモーフィズム:多態性,多相性
仮想関数のデザインを利用して,
実装時に仮想関数によるメソッド呼び出しを行っておくと,
将来の仕様拡張が起こったときに,仮想関数呼び出し部分のほとんどを書き換えなくてよくなる。
という,オブジェクト指向言語の利点のひとつ。
が。
これが利用できるのは,
きわめて凝集度が高くて,疎結合なメソッドに限られる。
もしくは,
メソッドを凝集度が高くて,疎結合なメソッドにデザインする必要がある。
無計画にポリモーフィズムを利用しようとしても,
結局は仮想関数では対応できなくなってしまって,
別メソッドを立てなければならなくなってしまう。
これを防ぐためには,
とにかく問題領域のモデリング。
仮想関数を高度に概念化して,モデル時点で機能をしっかり切り分ける。
これって,未来を予想しているよ?
モデリング時点で,
将来の発展性を把握していないと,そのレベルのモデリングはできない。
・将来このシステムは Web に乗っかるかもしれない。
・将来この課金計算メソッドは,課税情報が変わるかもしれない。
こんな情報も把握していなければ,
その時点での最適なモデリングは望めなくなってしまう。
アーキテクトは,変更管理委員会ではないし,ましてや経営マネージャーではない。
どうするか?
やっぱり,ヒアリングか。
我々情報処理技術者には,
扱っているものが,「情報」というだけで,
それが流れている全てのプロセスに
(受注,生産,把握,経営なんでも,今の時代情報が流れないプロセスはビジネスに存在しない)
ある程度の知識が求められる。
だから,ここは世界の縮図で,中心なのかもしれない。。。
コメント