デザインパターン備忘録02
無事続きました。
デザインパターン備忘録。
今回も2つ紹介します。
Template Methodパターン
処理の骨組みを抽象クラスで組み立て、具体的な肉付けを継承した子クラスで行う。
- 抽象クラスに抽象メソッドを用意し、継承した子クラスで実装を行う。
- 抽象クラスでは抽象メソッド以外にもpublicなメソッドを用意し、継承した子クラスはそれを利用する。
- 抽象クラスの変数に継承した子クラスのインスタンスを代入して良いため、汎用性が高い。
Factory Methodパターン
インスタンスの生成を継承した子クラスに任せて、具体的なクラス名による束縛から親クラスを開放する。
- 実際にはインスタンス生成を行わず、インスタンス生成のための別のクラスを用意する。
- インスタンス生成のための別のクラスは抽象クラスにしたり、Exceptionをthrowさせたりすると良い。
- 親クラスの中身を修正せずに、子クラスを様々な形態に変化させることができる。
今回紹介したパターンでは親クラスで動作の骨組みを理解し、抽象メソッドの役割を理解する必要があります。
この部分が共通していると思い、今回取り上げてみました。
基盤部分については使用されているデザインパターンの名称や意図をコメント等に記述しておくとよさそうです。
参考にした書籍
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (397件) を見る
分厚いですがソースコードの記述もあり、イメージしやすいです。HIKO