Debuginfo

思考とアウトプット

共通性・可変性分析(commonality/variavility analysis)

デザインパターンとともに学ぶオブジェクト指向のこころ」という本を読んでいて、この部分は重要そうなのでメモ。

  • 共通性分析:時間が経っても変化しにくい構造を見つけるもの
  • 可変性分析:変化しやすい構造を洗い出すもの
  • 共通性分析によってまとめられた概念を抽象クラスによって表現。
  • 可変性分析で得た流動的要素は抽象クラスの派生クラスによって実装される。

設計手順: 

  1. (抽象クラス)このクラスが持つ責務をすべて全うするにはどうようなインターフェイスが必要か?
  2. (派生クラス)この特定実装の中でどうのようにして与えられた仕様を実装できるのか?