デザインパターンとともに学ぶオブジェクト指向のこころ
本書の紹介
1章
8章 視野を広げる
キーワード
- 振る舞いにおける流動的要素をオブジェクト化する
- 共通性分析 問題領域のどこが流動的要素となるのかを識別すること 共通性分析は時が経っても変化しづらい構造を見出す。
- 可変性分析 問題領域がどのように変化するのかを識別すること
気になる記述
オブジェクト指向設計の教育においては、「問題領域に存在する名詞を洗い出し、その名詞を表現したオブジェクトを作成し、その後、 その名詞に関連する動詞(つまり操作)を洗い出し、該当オブジェクトのメソッドとして実装しなさい」と教えられることがしばしばあります。 こういった名詞と動詞に着目するプロセスを用いると、必要以上に深いクラス階層が作られてしまいがちです。 共通性分析と可変性分析を用いてオブジェクトを見つけ出した方が、単に名詞と動詞を洗い出すよりもずっと優れたアプローチになるのです。
コメント
設計の戦略として
- 共通性分析にて共通的概念(コンテキスト)を抽出する
- 結果として流動的要素を特定する
- 1がどのような変化をしうるのか可変性分析において特定する
- その後
Web系の面接でも同じようなこと言われたなぁ。 SIerは似たようなシステムにカスタマイズばかりして本質的な価値を提供していないって。 パッケージに業務を合わせるのが本筋なのは誰でも分かっていると思うんですけどね。