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
理解が深まったら追記