设计模式一:abstract factory

笔记:Abstract Factory

 

1.目的

       创建相关或者相互依赖的一组对象(这些对象具有某些共同的属性),创建之前并不知道这些对象的具体类型。

 

2.结构图:


       如上图,我们可以看到system 直接使用的是AbstractFactory, AbstractProductA, AbstractProductB。系统并不知道ConcreteFactory,具体的产品。 用户在使用的系统的时候,只需要创建具体的ConcreteFactoryAbstractFactory模式有效的封装了对象的创建。

3 使用Abstract Factory场合

l         系统使用products 但是并不关心具体的products的创建。

l         系统在创建的时候,需要一些相关的products来进行初始化或者配置。

l         一组相关的产品被系统使用,需要根据某种约束来组合产品。

l         如果想要提供一个products 的类库,而你只想暴露你的接口,而不想提供其实现。

 

4.协作关系

       客户生成具体的工厂,具体工厂创建出系统所需要的products。系统利用这些products进行初始化。

5.优势

l         Abstract Pattern 处理应用程序中对象的创建。客户通过它可以不用直接与具体产品对象的实现打交道。客户只需要知道具体的Factory 就可以生成出系统所需要的对象。

l         应用程序改变产品族容易。

l         有助于系统中产品的一致性。应用程序使用的产品肯定是一个具体工厂生产出来的。

 

6.不足

       增加新产品系列是很难的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值