デザインパターン4:State,Decorator,Bridge【C#】
What you'll learn
- デザインパターン設計を学ぶことができる
- Stateパターンを理解することができる
- Decoratorパターンを理解することができる
- Bridgeパターンを理解することができる
Requirements
- カプセル化、インタフェース、継承についてある程度理解していること
- サンプルコードはC#を使用しているため,ある程度C#コードが理解できること(javaなどのオブジェクト指向言語がわかれば理解できるとは思います)
- サンプルコードはC#特有の実装方法であるプロパティやデリゲートなどを含んでいます。それでもいいという方のみご受講ください。
- クラス図が理解できない方は「デザインパターン1」を受講後に本コースを受講してください
Description
どうもこんにちは、ピーコックアンダーソンです。
今回はデザインパターンの4つ目のコースということで、
以下の3つのパターンを収録してます。
・Stateパターン
・Decoratorパターン
・Bridgeパターン
【Stateパターン】
Stateパターンは、状態をクラスで表現するパターンです。
通常、オブジェクト指向はモノをクラス化するのですが、
このStateパターンでは、状態をクラス化するという考え方を行います。
状態クラスが次の状態に遷移したり、
その状態でやるべきことをやったりというような実装方法になっているので、
状態遷移などがある機器などの状態管理などには適したパターンです。
【Decoratorパターン】
Decoratorパターンは、
既存のクラスをラップして機能を拡張することができるパターンです。
ただラップするだけではなく、ラップした後も、
既存のクラスと同じインターフェースや抽象になるようにすることで、
元々の既存クラスと同じように扱うことができるというのが特徴です。
さらに自分自身が自分を呼び出すという再帰的な構造にもなってるので、
拡張機能というのは1つだけではなく、
2つ3つと、複数の機能を拡張するということもできます。
既存クラスを触ることなく、機能拡張したい場合には有効なパターンです。
【Bridgeパターン】
Bridgeパターンは、次元の異なる拡張がある場合、
例えば1つの種類が増えるだけで、
3つも4つもクラスが増えてしまうといった、
組み合わせによるクラス爆発が起きるような場合は、
Bridgeパターンを使うことで、
必要なクラスを組み合わせて、
全てのパターンの組み合わせを実現できるようになるので、
組み合わせによるクラス爆発が起きるような場合には、
Bridgeパターンでの対応というのが有効になります。
このような3つのパターンを
徹底的に掘り下げて解説してますので、
興味のある方はご覧になってみてください。
Who this course is for:
- GoFのデザインパターンをC#で学びたい方
Instructor
20年ほどプログラマーとして活動しています。初期の頃はいろんな現場を転々とするプログラマーで10年ほど経験をつみ,その後,大手メーカーに入社し,C#やSQLServerを中心とした製品開発にて設計,製作,保守,プロジェクトリーダー等を10年近く担当。
知識習得のきっかけは,現場に分かりづらいプログラムコードが散乱しており,それらをわかりやすくするために,オブジェクト指向,ドメイン駆動開発,テスト駆動開発,リファクタリング,デザインパターンの書籍などを読み漁りました。その結果,一つのドメイン駆動開発手法にいまはたどり着き,チームのメンバーに伝えていますが,この知識を大勢の方にお伝えすると,予想以上に喜んで頂けているので,私の学んだ知識をできるだけわかりやすくお伝えして,私のした遠回りをあまりしなくてもいいように,解説していきたいと思っています。