定义一个用于创建对象的接口,让子类决定实例化哪个类
在任何需要生成复杂对象的地方,都可以使用工厂方法模式
public abstract class Product {
public abstract void method();
}
public class ConcreteProductA extends Product {
@Override
public void method() {
System.out.println("我是产品A");
}
}
public class ConcreteProductB extends Product {
@Override
public void method() {
System.out.println("我是产品B");
}
}
public abstract class Factory {
public abstract Product createProduct();
}
public class ConcreteFactoryA extends Factory {
@Override
public Product createProduct() {
return new ConcreteProductA();
}
}
public class ConcreteFactoryB extends Factory {
@Override
public Product createProduct() {
return new ConcreteProductB();
}
}
public class Test {
public static void main(String[] args){
Factory factory = new ConcreteFactoryA();
Product product = factory.createProduct();
product.method();
}
}