在开发中,工厂模式得到了广泛的应用,每个人都很容易掌握。许多初学者只使用它,不知道具体的含义。以下是对工厂模式的详细分析。
一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
工厂模式分为三类:
1)简单工厂模式:不利于产生系列产品;
2)工厂方法模式:又称为多形性工厂;
3)抽象工厂模式:又称为工具箱,产生产品族,但不利于产生新的产品;
这三种模式从上到下逐步抽象,并且更具一般性。
在简单的工厂模式中,工厂类处于产品类实例调用的中心位置。它决定了哪个产品类别应该被实例化,就像一个交警站在车流中,决定释放那个方向的车辆。
先来看看它的组成:
1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。它往往由一个具体类实现。
2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。由接口或者抽象类来实现。
3) 具体产品角色:工厂类所创建的对象就是此角色的实例。
工厂方法模式是简单工厂模式的进一步抽象化和推广,工厂方法模式里不再只由一个工厂类决定那一个产品类应当被实例化,这个决定被交给抽象工厂的子类去做。
来看下它的组成:
1) 抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类,它由抽象类或者接口来实现。
2) 具体工厂角色:它含有和具体业务逻辑有关的代码,由应用程序调用以创建对应的具体产品的对象。
3) 抽象产品角色:它是具体产品继承的父类或者是实现的接口。一般有抽象类或者接口来实现。
4) 具体产品角色:具体工厂角色所创建的对象就是此角色的实例。