「Factory」という英単語は、「工場」を意味します。
このパターンでいう「Factory」とは、オブジェクト生産工場のことを言います。つまり、「Factory Method パターン」とは、オブジェクトの生成手順をパターン化したものです。
このパターンを適用すると、「オブジェクト作成のための手順(フレームワーク)を決める」役割りと「実際にオブジェクトを作成する」役割りを明確に分けて定義することができます。
Factory Methodパターンのクラス図
1. Creator.java
public abstract class Creator { public abstract Product factoryMethod(); public final Product create() { Product product = factoryMethod(); return product; } }
2. Product.java
public abstract class Product { public abstract void method1(); public abstract void method2(); }
3. ConcreteCreator.java
public class ConcreteCreator extends Creator { public Product factoryMethod() { return new ConcreteProduct(); } }
4. ConcreteProduct.java
public class ConcreteProduct extends Product { public void method1() { System.out.println("method1"); } public void method2() { System.out.println("method2"); } }
5. Client.java
public class Client { public static void main(String[] args) { Creator creator = new ConcreteCreator(); Product product = creator.factoryMethod(); product.method1(); product.method2(); } }
C:\sample\desin_pattern\factory_method>javac Client.java [Enter] C:\sample\desin_pattern\factory_method>java Client [Enter] method1 method2