読者です 読者をやめる 読者になる 読者になる

備忘録

物忘れが酷いので

Factory Method

デザインパターン

概要

ファクトリメソッドパターンは、インターフェイス
を用いてオブジェクトの生成を柔軟にするデザインパターン
必要に応じて生成するクラスを変えることができるので、再利用性を
高めることができる。
・Productクラス
 ファクトリクラスヲが生成するインスタンスのインターフェイス
・ConcreteProductクラス
 実際に生成されるインスタンス
・Creatorクラス
 ファクトリメソッドを用意するクラス
 Product型のインスタンスを返す
 具象クラスとしてインスタンスを生成させることもある
 ただし、柔軟性が下がる
・ConcreteCreatorクラス
 ConcreteProductを生成するクラス

Factory Methodの実現方法

・インターフェイスでProduct,Creatorを作る。
・それをもとにConcreteProduct,ConcreteCreatorを作る。

interface Creator{
  public Product factoryMethod();
}

interface Product{}

class ConcreteCreator1 implements Creator{
  public Product factoryMethod(){
    return new ConcreteProduct1();
}

class ConcreteCreator2 implements Creator{
  public Product factoryMethod(){
    return new ConcreteProduct2();
}

class ConcreteProduct implements Product{}

public class Sample{
  public static void main(String[] args){
    Creator factory = new ConcreteCreator1();//書き換えるのはここだけ
    Product product = factory.factoryMethod();
  }
}

link
http://ja.wikipedia.org/wiki/Factory_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
http://www.nulab.co.jp/designPatterns/designPatterns2/designPatterns2-2.html

理解が深まったら追記