下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
系统中一些复杂的对象它们拥有多个组成部分,如汽车它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言无须知道这些部件嘚装配细节,也几乎不会使用单独某个部件而是使用一辆完整的汽车!
这时就可以通过建造者模式对其进行设计与描述,建造者模式可以將部件和其组装过程分开一步一步创建一个复杂的对象。
用户只需要指定复杂对象的类型就可以得到该对象而无须知道其内部的具体構造细节。
在软件开发中也存在大量类似汽车一样的复杂对象,它们拥有一系列属性这些属性中有些是引用类型的成员对象。而且在這些复杂对象中还可能存在一些限制条件,如
复杂对象相当于一辆有待建造的汽车而对象的属性相当于汽车的部件,建造产品的过程就相当于组合部件的过程由于组合部件的过程很复杂,因此这些部件的组合过程往往被“外部化”到一个称作建造者的对象裏,建造者返还给客户端的是一个已经建造完毕的完整产品对象而用户无须关心该对象所包含的属性以及它们的组装方式,这就是建造鍺模式的由来
生成器模式(英:Builder Pattern)是一种设计模式,又名:建造模式是一种对象构建模式。
它可以将复杂对象的建造过程抽象出来(抽象类别)使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。
将一个复杂对象的构建与它的表示分离,使得同样的构建过程,可以创建不同的表示.
用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道
在以下情况考虑使用生成器模式:
方法几乎都是返回一个自身实例
和之前同理,必存在一个 build 方法