デザインパターンの落とし穴

http://www.atmarkit.co.jp/fdotnet/designptn/designptn07/designptn07_01.html
えらく煽情的なタイトルをつけたな!!!

 デザインパターンを適用する際に、わなに陥らないようにするためには、「オブジェクト指向設計の原則」(以降、設計原則)を意識して設計を進めていくとよい。

要は「デザパタ以前に設計原則を知れ」と。

単一責任の原則(SRP:Single Responsibility Principle)
クラスを変更する理由は1つ以上存在してはならない
オープン・クローズドの原則(OCP:Open-Closed Principle)
ソフトウェアの構成要素(クラス、モジュール、関数など)は拡張に対して開いていなければならず(オープン:Open)、修正に対しては閉じていなければならない(クローズド:Closed)
リスコフの置換原則(LSP:Liskov Substituion Principle)
派生型はその基本型と置換可能でなければならない
依存関係逆転の原則(DIPDependency Inversion Principle)
a. 上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存すべきである
b. 「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきである
インターフェイス分離の原則(ISP:Interface Segregation Principle)
クライアントに、クライアントが利用しないメソッドへの依存を強制してはならない