在众多设计模式里面使用最多的一个就是工厂方法模式,下面我们先来看一个例子:
//抽象产品
interface IProduct {
public void productMethod();
}
//具体产品
class Product implements IProduct {
public void productMethod() {
System.out.println("产品");
}
}
//抽象工厂
interface IFactory {
public IProduct createProduct();
}
//具体工厂
class Factory implements IFactory {
public IProduct createProduct() {
return new Product();
}
}
public class Client {
public static void main(String[] args) {
IFactory factory = new Factory();
IProduct prodect = factory.createProduct();
prodect.productMethod();
}
}
output:产品
不难看出,工厂方法模式有以下几个角色:
● Product(抽象产品):它是定义产品的接口,是工厂方法模式所创建对象的超类型,也就是产品对象的公共父类。
● ConcreteProduct(具体产品):它实现了抽象产品接口,某种类型的具体产品由专门的具体工厂创建,具体工厂和具体产品之间一一对应。
● Factory(抽象工厂):在抽象工厂类中,声明了工厂方法(F