[设计模式]:面向可维护性的设计模式:Factory ,Abstract Factory,Builder

[设计模式]:面向可维护性的设计模式:Factory,Abstract Factory,Builder

Factory Method pattern 工厂方法模式

也称为虚拟构造器
当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。
定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果使用了工厂方法:
在这里插入图片描述
在这里插入图片描述
优点:对扩展的开放,对修改已有代码的封闭

Abstract Factory Pattern

抽象工厂模式:提供接口以创建一组相关/相互依赖的对象,但不需要指明其具体类。
课件例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果分析:创建的不是一个完整产品,而是“产品族”(遵循固定搭配规则的多类产品的实例),得到的结果是:多个不同产品的object,各产品创建过程对client可见,但“搭配”不能改变。

Builder 构造器模式

创建复杂对象,包含多个组成部分。
就比如现在KFC点餐,一个人的餐是由很多东西一起组成的。
在这里插入图片描述
但是,client要的不是一堆零散的objects (abstractfactory那样的结果),而是一个完整的产品,client不关心其中的细节组成部分是什么、如何创建。
使用build模式一步步构建这个复杂的物体:
比如下面的例子,把一个pizza分成三个部分,分别设置。
在这里插入图片描述
在每个具体的实现类中,这三个方法各不相同:
在这里插入图片描述
最后使用时,只需设置好pizza的种类,调用一个constructPizza()方法,Bingo! 构建细节完全对client隐藏。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值