工厂方法模式

工厂方法模式:是类的创建模式,又叫多态性工厂模式、虚拟构造子模式。它是简单工厂模式的进一步抽象和推广。

 

工厂方法模式的结构:抽象工厂、具体工厂、抽象产品,具体产品。

 

(1)抽象工厂
package com.javapatterns.factorymethod;
public interface Creator {
    // 工厂方法
    public Product factory();
}
(2)抽象产品
public interface Product {
   
}
(3)具体工厂(ConcreteCreator1和ConcreteCreator2)
public class ConcreteCreator1 implements Creator {
    // 工厂方法
    public Product factory() {
        return new ConcreteProduct1();
    }
}
(4)具体产品(ConcreteProdcut1和ConcreteProduct2)
public class ConcreteProduct1 implements Product {

}
(5)客户端角色
public class Client {
    private static Creator creator1, creator2;
    private static Product prod1, prod2;
    public static void main(String[] args) {
        creator1 = new ConcreteCreator1();
        prod1 = creator1.factory();
        creator2 = new ConcreteCreator2();
        prod2 = creator1.factory();
    }
}

 

工厂方法模式和简单工厂模式:它们在结构上的不同是很明显的。工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。工厂方法模式退化后可以变得很像简单工厂模式。

 

工厂方法模式之所以又叫多态性工厂模式,显然是因为具体工厂类都有共同的接口,或者都有共同的抽象父类。

 

工厂方法返回的应当是抽象类型,而不是具体类型。只有这样,才能保证针对产品的多态性。

你可能感兴趣的:(工厂方法模式)