创建型模式(一)抽象工厂Abstract Factory

 

andy
    
最近集中学习了一下李建忠老师的C#设计模式课程,感觉收获特别大,整个知识结构都得到了升华。为了融会贯通设计模式思想。我想通过随笔的形式把设计模式思想整理出来。
    首先是创建型模式的抽象工厂ABSTRACT FACTORY。
    创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建组合表示它的那些对象。一个类的创建型模式使用继承来改变被实例化的类,而一个对象的创建型模式则将实例化委托给另一个对象。
    ABSTRACT FACTORY

1、意图(intent)

提供一个接口,让其创建一系列相关或相互依赖的对象,而无需指定它们具体的类。

2、动机(motivation)

由于需求的变化往往存在一系列的对象发生变化。

3、适用性

一个系统要独立于它的产品的创建、组合和表示时。

一个系统要由多个产品系列中的一个来配置时。

当强调一系列相关的产品对象的设计以便进行联合使用时。

当你提供一系列产品类库,而只想显示它们的接口而不是实现时。

4、结构:


5、参与者

AbstractFactory:声明了创建抽象产品的操作接口。

ConcreteFactory:实现创建具体产品对象的操作。

AbstractProduct:声明了某一类产品对象的接口。

Product:被一个具体工厂创建的产品对象。

Client:只使用AbstractFactory和AbstractProduct接口的客户程序。

6、协作

通常在运行时刻创建一个ConcreteFactory类的实例。这一具体的工厂类创建具有特定实现的一系列产品对象。为了创建不同的产品对象,客户需使用不同的具体工厂。

7、效果

分离了具体的类:客户代码只出现接口。

方便更换产品系列。

有利于产品的一致性。

难以支持加入新种类的产品。

8、实现

   a)将工厂作为单件。一个应用中一般每个产品系列只需要一个ConcreteFactory的实例。因此工厂最好实现为一个Singleton。
   b)创建产品
   C)定义可扩展的工厂

转载于:https://www.cnblogs.com/dequan-lee/archive/2007/10/09/917770.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值