「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