1.创建型.1工厂模式

来源:互联网 发布:七天网络查分登录 编辑:程序博客网 时间:2024/05/18 18:53


工厂模式有三种:1、简单工厂。2、工厂。3、抽象工厂。

------------------------概述--------------------------------------------------------------------
简单工厂模式:
工厂类决定产出的产品类型,增加新类型需要修改工厂类。
工厂模式:
每一个产品类型对应一个不同的工厂实现类,一个工厂的接口方法产出固定类型产品。
示例1:
产品接口:文具
产品实现类1:铅笔
产品实现类2:橡皮

工厂接口:生产
工厂实现类1:铅笔工厂(生产)
工厂实现类2:橡皮工厂(生产)

客户端:铅笔工厂.生产()

抽象工厂模式:
工厂类的不同方法(抽象类方法)产生不同的产品类型。(一般采用抽象工厂的场景,会有多个工厂,以及对产品进行分类)
和工厂模式相比,抽象工厂模式的核心点是:
产品又细分了一个维度(每个类型的产品可以产生多份),导致需要增加另一个维度的工厂,因此将原维度的多个工厂合并在一起成为一个工厂,此时不同的工厂,产生的是新维度的产品。
示例2
新增了一个产品品牌的工厂维度:

产品接口1:铅笔
产品接口2:橡皮
产品实现类1:晨光铅笔
产品实现类2:晨光橡皮
产品实现类3:彩铅笔
产品实现类4:彩橡皮

工厂接口1:品牌工厂(生产铅笔、生产橡皮)
工厂实现类1:晨光工厂(生产晨光铅笔、生产晨光橡皮)
工厂实现类2:彩工厂(生产彩铅笔、生产真彩橡皮)
客户端:晨光工厂.生产晨光铅笔()
-------------------------------------------------------------------------------------------------
1、简单工厂。(包括普通工厂、多个工厂、静态工厂)

一个工厂类生产不同的对象。一个产品接口,产品实现类。
优点:客户端不需要修改代码。
缺点: 当需要工厂产生新的对象类型的时候,必须要修改工厂类。

a、普通工厂,工厂类根据传入的参数判断生产的对象类型。
b、多个工厂,工厂类不同的方法生产不同的对象类型。
c、静态工厂,与多个工厂同结构,只是方法是静态方法。

2、工厂。

工厂模式,每个产品实现类,配套一个工厂实现类。
工厂产出什么类型的产品在工厂内部决定,生产产品是调用工厂的接口方法(不同工厂调用的方法是一样的),所以一个工厂实现类的生产方法只能生产一个类型的产品。

优点:即使增加新的对象类型,也不需要修改工厂类,只需要新增一个对象类型的工厂实现类即可。
缺点:增加新的对象类型,必须要修改客户端的代码(生成不同对象类型的工厂实例)。



3、抽象工厂。
抽象工厂模式,工厂的不同方法产生不同类型的产品,所以一个工厂可以产生多个不同类型的产品。










1 0
原创粉丝点击