定义:将创建对象的权利交给工厂类实现,解耦对象使用者和对象创建过程。
工厂模式有三种:
1、简单工厂模式
2、工厂方法模式
3、抽象工厂模式
使用工厂模式作用:
1、客户类和对象之间的耦合关系转移到了工厂方法和对象之间
2、客户类不需要关系对象的创建过程,当对象创建过程发生修改时,不需要修改客户段代码,提高了代码的可维护性。
3、客户类不需要关心具体使用的对象是何种类型,只需要使用对象的接口类型,面向接口编程,符合: 依赖倒置原则。
简单工厂模式:
定义一个工厂类,并且有一个工厂方法,工厂方法根据产品类型可以生产出对应的产品。
角色:
抽象产品
多个具体产品
工厂
客户端:使用工厂对象创建产品对象者
工厂方法模式:
定义一个抽象工厂,再定义多个具体工厂,每个具体工厂生产具体的产品,这松产品都有一个公共的产品接口。
工厂方法模式和简单工厂模式的区别:
简单工厂模式只有一个工厂创建各种类型的产品,如果新增或减少产品,就需要修改那一个工厂类,不符合开闭原则
工厂方法是定义一个工厂接口,有多个工厂实现类,生产各自不同类型的产品,当有新产品增加或减少时,只需要创建或删除一个工厂实现类即可。
抽象工厂模式:
是对工厂方法的改进,工厂方法中的抽象工厂只创建一种规格的产品,其他工厂实现类创建不同的产品,这里的不同产品指的是符合抽象工厂创建的那种规格,但是具体实现不同的产品,而抽象工厂模式中的抽象工厂中有多个工厂方法,可以创建多种类型的产品,具体的工厂子类实现创建不同的产品类型