私は常々、プログラミングの「機能追加」は、2パターンしかないと思っている。以下の2パターンだ。
この分類は、結合関係に焦点を当てての分類だと思っている。
基本はモジュールで考えることだ。包含とは、自分が相手を含むことであり、並列とは、相手と同列にならべて(つまりフラットな関係で)自分を存在させることである。依存関係を、前者は継承や集約などにより行い、後者はディスパッチ(引数渡し)などで行う。
しかし、機能追加は、OCPと絡めて解説しないと意味がない。これは、時間のあるときに記事にするつもりであるが、今は時間がない。時間があるときにまとめよう。