#input
[[🗃️デザインパターン]]の紹介。
## 8-1 名前を持つ概念
## [[🗃️Iteratorパターン]]
- 要素を列挙する概念だけを抜き出したパターン
- 配列の繰り返しも、一般化できる抽象概念として扱うのが、[[🗃️Iteratorパターン]]
- [[📚8-2 多態性を設計する]]
- [[📚8-4 インスタンスを生成する]]
- [[📚8-5 オブジェクトで構造を作る]]
- [[📚8-6 構造のオブジェクト間にあるもの]]
- [[📚8-7 データモデルの構造]]
- [[📚8-8 クラスか高階関数か]]
- [[📚8-9 どこで生成されどこで振る舞うか]]
- [[🗃️デザインパターン]]は、「べきでない」意図の表明
- 例
- [[🗃️Singletonパターン]]に状態を持たせてはいけない
- [[🗃️Facadeパターン]]、[[🗃️Mediatorパターン]]に独自の知識を実装してはいけない
- [[🗃️Strategyパターン]]、[[🗃️Visitorパターン]]は永続てなデータと癒着はしてはいけない
- 概念的な制約が[[🗃️単一責任原則(SRP)]]を明確にする
- 責務が明確で小さく安定したクラスの方が安心して再利用できる
- 認識のしやすが設計の再利用性に貢献する