码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(3)——建造者模式

时间:2020-12-24 11:39:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:direct   资质   定义   product   clinet   其他   简单   net   要求   

  建造者模式对客户端屏蔽了复杂对象的创建过程,而且复杂对象的创建步骤交给一个指挥者(Director)进行封装,提供出一个简单明了的方法供上层模块使用。

  eg: 以客户需要建一所新的房子为背景:

  定义客户为客户端(上层使用模块 Client)

  包工头为指挥者(Director)

  施工队资质为抽象建造者(AbstractBuilder)

  具有资质的施工队为建造者(Builder,施工队可以有多重类型,比如别墅施工队、写字楼施工队、普通住房施工队等/....)

  房屋为最终的产品(Product)

  

  客户雇佣包工头修建住宅,客户只和包工头打交道。包工头按照客户需求雇佣施工队,安排施工计划。由施工队对住宅进行具体建设,最后住宅修建完成。

  客户只想要房子其他都不懂,所以他找到了包工头说:"我要修xxx房子,交给你负责。"。包工头知道修建房屋的所有步骤和流程,他雇佣一支有资质且符合他要求的施工队然后安排好流程。

施工队被包工头安排开工,最后房屋建成。客户得到了房子。

  在建造者模式中,Product的复杂实现流程由 Director 指挥 Builer 完成。 Builder 提供修建能力, Director 寻找合适的Builder 安排工作流程,提供了交付房屋的能力。 Clinet 的工作就变得十分简单

只要找到 Director 调用交付房屋的功能即可。

  建造者模式对客户端屏蔽了复杂对象的实现方式,通过 Director 获取自己需要的 Product。

设计模式(3)——建造者模式

标签:direct   资质   定义   product   clinet   其他   简单   net   要求   

原文地址:https://www.cnblogs.com/dengsheng/p/14158123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!