工厂模式共有3种,分别是简单工厂模式(simple factory),工厂方法模式(Factory method)以及抽象工厂模式(abstract factory)。
好,现在就来看看这3种模式的作用吧。
简单工厂模式的应用很广泛,他的作用其实就是提供一个工厂类,在工厂类中有一个静态方法负责根据传入的参数完成创建哪一种方法的实例。这样我们就可以把创建各种不同类的功能交给一个factory类统一处理。
一个简单工厂模式应该包含以下3种角色:
工厂角色:主要完成产品的创建工作。
抽象产品角色:提供具体产品的抽象父类或接口,这样可以实现多态性。
具体产品角色:具体的产品类,由一个java类实现。
当你需要创建的产品组是一个层次结构的时候,就可以使用工厂方法模式了。工厂方法模式相对于简单工厂来说,增加了一个抽象工厂,一个具体工厂的角色。这样就可由抽象工厂继承得到具体工厂,再由具体工厂来创建具体产品了。
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 = creator2.factory();
而抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。(待续)