2.2、工厂方法(Factory Method)模式

意图
- 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到其子类
概念
适用于:
- 当一个类不知道它所必须创建的对象的类的时候
- 当一个类希望由它的子类来指定它所创建的对象的时候(一个类的实例化延迟到子类)
- 当类创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候
代码
java
public class FactoryMethod {
public static void main(String[] args) {
Factory factoryA = new FactoryA();
Product productA = factoryA.createProduct();
Factory factoryB = new FactoryB();
Product productB = factoryB.createProduct();
}
interface Factory {
public Product createProduct();
}
}
interface Product {
// 接口里的方法都是抽象方法
public void info();
}
class FactoryA implements Factory {
@Override
public Product createProduct() {
return new ProductA();
}
}
class FactoryB implements Factory {
@Override
public Product createProduct() {
return new ProductB();
}
}
class ProductA implements Product {
@Override
public void info() {
System.out.println("产品A");
}
}
class ProductB extends Product {
@override
public void info() {
System.out.println("产品B");
}
}