『増補改訂版 Java言語で学ぶデザインパターン入門』(結城浩)に掲載されているJavaのサンプルコードをC#に移植したものです。
原書のソースコードにできるだけ忠実にC#に移植することを心がけましたが、 C#らしさを出すように書き換えている個所もあります。
ソースファイルのディレクトリ構造も原著とは異なっています。
パターン名 | 説明 |
---|---|
■生成に関するパターン | |
Factory Method | インスタンス作成をサブクラスにまかせる |
Singleton | たった1つのインスタンス |
Prototype | コピーしてインスタンスを作る |
Builder | 複雑なインスタンスを組み立てる |
Abstract Factory | 関連する部品を組み合わせて製品を作る |
■構造に関するパターン | |
Adapter | 皮かぶせて再利用 (OtherAdapterとして別バージョンも掲載) |
Bridge | 機能の階層と実装の階層を分ける |
Composite | 容器と中身の同一視 |
Decorator | 飾り枠と中身の同一視 |
Facade | シンプルな窓口 |
Flyweight | 同じものを共有して無駄をなくす |
Proxy | 必要になってから作る |
■振る舞いに関するパターン | |
Iterator | 1つ1つ数え上げる |
Template Method | 具体的な処理をサブクラスにまかせる |
Strategy | アルゴリズムをごっそり切り替える |
Visitor | 構造を渡り歩きながら仕事をする |
Chain of Responsibility | 責任のたらい回し |
Mediator | 相手は相談役1人だけ |
Observer | 状態の変化を通知する |
Memento | 状態を保存する |
State | 状態をクラスとして表現する |
Command | 命令をクラスにする |
Interpreter | 文法規則をクラスで表現する |