今回はTemplate Methodパターンについて書いていきます。
デザインパターンとは
デザインパターンとはソフトウェア開発の設計方法の事です。
『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。
Template Method パターンとは
Template Method パターンとはFactoryMethodパターンに似ていてクラスの継承を使うパターンです。
事前に用意した抽象クラスを継承することで必要最低限のコードで処理を実装できるパターンです。
SwiftでのTemplate Method パターンの実装方法
SwiftでのTemplate Method パターンは下のように記述します。
Animal
クラスでsetPosion()
を定義してinit
の中で呼んでいます。
Animal
のサブクラスではsetPosion()
をオーバーライドしてx,yをセットする事ができます。
class Animal { var x: Int = 0 var y: Int = 0 init() { self.setPosion() // 他の初期化処理 // … } func setPosion() { x = 0; y = 0 } } class crane: Animal { override func setPosion() { x = 10; y = 0 } } class dog: Animal { override func setPosion() { x = 30; y = 20 } }
Template Method パターンの長所・使いどころ
Template Method パターンはうまく使えば非常にコードが短く書けます。
そしてメソッド名も親クラスをオーバーライドするだけなので命名に悩む事もなくなります。
しかし親クラスに修正を加える際の影響範囲が広いので変更の多いアプリでは使いにくいかもしれません。
関連するパターン
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る