iOS设计模式-建造者模式

1、引例:
汽车,是一个很复杂的对象,它有很多的部件,车轮、发动机、座椅、车门、油箱等等;它的组装过程也很复杂(需要专业人士按步骤进行装配),建造者模式就是为了将部件和组装过程分开的。同样的,我们使用的计算机也一样,有很多的部件,组装过程也很复杂(当然,对于我们这样的专业人士可能感觉不复杂);本文例子:建房子,有打地基,建造房子,装修;设计师(Director)知道建造过程,总承包商知道需要建造的模块(Builder),并且有几个模块承包商(ConcreteBuilder),最后总承包商将产品房子提交给Director

2、介绍
(1)定义
将一个复杂对象的构建与他的表现分离,使得同样的构建过程可以创建不同的表现
(2)作用
建造者模式负责将复杂对象的构建过程和他的部件解耦,即过程和部件解耦

3.优点:
不需要知道细节
模块化处理
很好的组合特性
建造者模式最大的好处就是使得构建过程和表现分离,因此若需要改变一个产品的表现,只需要重新定义一个具体的建造者就可以了(拿车来打比方,我们将车的组装过程独立出来,用这个组装过程,我们即可以组装宝马车,也可以组装奔驰车,或者其他的车型,我们只需要重新定义一个具体的建造者(用于产品表现的类)就可以了)。

4.原理

这里写图片描述
  从结构图可以看到,生成器模式有两个重要的角色:Director(指导者)和Builder(建造者)。Director知道Builder应该建造什么(建造的过程),Builder知道如何建造(表现)。在Director类中定义了一个construct方法,指导具体的建造者ConcreteBuilder的对象去buildPart。Builder是一个抽象接口(协议),该协议中包含建造各个部分的方法(buildPart),用来构建实际的产品Product,另外还有一个getResult方法,用来向客户端返回构建完成的Product。
建造者模式Demo:https://github.com/onebutterflyW/DesignModel-BridgePattern

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的修养

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值