工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例延迟到其子类。
下面是工厂方法模式的结构图:
下面演示一个Demo:
定义Product接口及它的实现类:
public interface Product {
public void printName();
}
public class ProductA implements Product{
@Override
public void printName() {
System.out.println("ProductA");
}
}
public class ProductB implements Product{
@Override
public void printName() {
System.out.println("ProductB");
}
}
定义工厂及它的实现类:
public interface ProductFactory {
public Product createProduct();
}
public class ProductAFactory implements ProductFactory{
@Override
public Product createProduct() {
return new ProductA();
}
}
public class ProductBFactory implements ProductFactory{
@Override
public Product createProduct() {
return new ProductB();
}
}
客户端:
public class StartUp {
public static void main(String[] args) {
/**
* 创建ProductA
*/
ProductFactory pf1 = new ProductAFactory();
Product p1 = pf1.createProduct();
p1.printName();
/**
* 创建ProductB
*/
ProductFactory pf2 = new ProductBFactory();
Product p2 = pf2.createProduct();
p2.printName();
}
}