今回はFactoryMethodパターンについて書いていきます。
デザインパターンとは
デザインパターンとはソフトウェア開発の設計方法の事です。
『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。
FactoryMethod パターンとは
FactoryMethod パターンとはインスタンス生成に関するパターンです。
具体的にはインスタンスの生成をメソッド化する事でインスタンス生成を柔軟に変更できるものになります。
TemplateMethodパターンと併用される事が多いパターンです。
SwiftでのFactoryMethod パターンの実装方法
SwiftでのFactoryMethod パターンは下のように記述します。
ポイントとしては、SuperClass
のinit
の中です。
item
のセットをItem1()
と直接インスタンス生成せずにcreateItem()
を介して行っています。
そうする事で、サブクラスでcreateItem()
をオーバーライドするだけでitem
へセットする値を変える事ができます。
このようにインスタンス生成をメソッド化するパターンをFactoryMethodパターンと呼びます。
class SuperClass { var item: Item init() { item = createItem() // 初期化処理 // … } func createItem() -> Item { return Item1() } } class SubClass: SuperClass { override func createItem() -> Item { return Item2() } } class Item {} class Item1: Item {} class Item2: Item {}
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る