工厂方法(Factory Method)
创建抽象工厂类,定义具体工厂的公共接口
public abstract class Factory {
public abstract Product manufacture();
}
创建具体工厂类(继承抽象工厂类),定义创建对应具体产品实例的方法;
public class FactoryA extends Factory {
@Override
public Product manufacture() {
return new ProductA();
}
}
class FactoryB extends Factory {
@Override
public Product manufacture() {
return new ProductB();
}
}
创建抽象产品类 ,定义具体产品的公共接口
public abstract class Product {
public abstract void show();
}
创建具体产品类(继承抽象产品类), 定义生产的具体产品;
class ProductA extends Product {
@Override
public void show() {
System.out.println("A");
}
}
class ProductB extends Product {
@Override
public void show() {
System.out.println("B");
}
}
通过调用具体工厂类的方法,从而创建不同具体产品类的实例
public class Test {
public static void main(String[] args) {
Factory factoryB = new FactoryB();
Product manufactureB = factoryB.manufacture();
manufactureB.show();
Factory factoryA = new FactoryA();
Product manufactureA = factoryA.manufacture();
manufactureA.show();
}
}
输出结果