美文网首页
建造者模式

建造者模式

作者: 蓝色Hippie | 来源:发表于2020-06-17 06:58 被阅读0次

一、建造者模式

    1、定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

    2、主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。

    3、如何使用:用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)

    4、解决的问题

(1)、方便用户创建复杂的对象(不需要知道实现过程)

(2)、代码复用性 & 封装性(将对象构建过程和细节进行封装 & 复用)

    5、注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序,一般用来创建更为复杂的对象

二、实现方式

(1)通过Client、Director、Builder和Product形成的建造者模式

(2)通过静态内部类方式实现零件无序装配话构造

三、常见第一种方式

(1)一般有以下几个角色

    抽象建造者(builder):描述具体建造者的公共接口,一般用来定义建造细节的方法,并不涉及具体的对象部件的创建。

    具体建造者(ConcreteBuilder):描述具体建造者,并实现抽象建造者公共接口。

    指挥者(Director):调用具体建造者来创建复杂对象(产品)的各个部分,并按照一定顺序(流程)来建造复杂对象。

    产品(Product):描述一个由一系列部件组成较为复杂的对象。

(2)举个例子

    既然是建造者模式,那么我们还是继续造房吧,其实我也想不到更简单的例子。

    假设造房简化为如下步骤:(1)地基(2)钢筋工程(3)铺电线(4)粉刷

    “如果”要盖一座房子,首先要找一个建筑公司或工程承包商(指挥者)。承包商指挥工人(具体建造者)过来造房子(产品),最后验收。

(3)具体步骤

    1、创建抽象建造者定义造房步骤

    2、创建工人具体实现造房步骤

    3、创建承包商指挥工人施工

    4、验收,检查是否建造完成

(4)具体代码

四、第二种方式

(1)主要有三个角色:抽象建造者、具体建造者、产品

比第一种方式少了指挥者,主要是因为第二种方式把指挥者交给用户来操作,使得产品的创建更加简单灵活。

(2)举个例子

比如麦当劳的套餐,服务员(具体建造者)可以随意搭配任意几种产品(零件)组成一款套餐(产品),然后出售给客户。

(3)具体步骤

    1、创建建造者定义麦当劳的产品

    2、创建服务员实现具体产品

    3、服务员随意搭配套餐出售给客户

(4)具体代码

五、总结

(1)优点

    1、产品的建造和表示分离,实现了解耦。

    2、将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰

    3、增加新的具体建造者无需修改原有类库的代码,易于拓展,符合“开闭原则“。

(2)缺点

    1、产品必须有共同点,限制了使用范围。

    2、如内部变化复杂,会有很多的建造类,难以维护。

(3)应用场景

    1、需要生成的产品对象有复杂的内部结构,这些产品对象具备共性;

    2、隔离复杂对象的创建和使用,并使得相同的创建过程可以创建不同的产品。

    3、需要生成的对象内部属性本身相互依赖。

    4、适合于一个具有较多的零件(属性)的产品(对象)的创建过程。

相关文章

  • Builder Pattern in Java

    建造者模式:建造者模式定义建造者模式应用场景实现案例Jdk中的建造者模式建造者模式的优点建造者模式的缺点 建造者模...

  • 设计模式(4) 建造者模式

    什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与...

  • 建造者模式(部件构造)

    目录 建造者模式的理念 从 POJO 到建造者模式的思考 怎么来实现建造者模式 建造者模式在Android源码中的...

  • 【设计模式】之建造者Builder模式

    建造者模式 什么是建造者模式? 建造者模式属于创建型模式的一员,可以控制对象的实例化过程。建造者模式简化了复杂对象...

  • 建造者模式

    一、建造者模式介绍 二、建造者模式代码实例

  • 建造者模式

    建造者模式 首先,建造者模式的封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和...

  • 建造者模式:深入理解建造者模式 ——组装复杂的实例

    目录: 一 建造者模式介绍 1.1 定义 1.2 为什么要用建造者模式(优点)? 1.3 哪些情况不要用建造者模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 一、设计模式(构建模式)——03建造模式与原型模式

    建造者模式 建造型模式用于创建过程稳定,但配置多变的对象。 建造模式的实现要点: 在建造者模式中,指挥者是直接与客...

  • 创建型模式:建造者模式

    个人公众号原文:创建型模式:建造者模式 五大创建型模式之四:建造者模式。 简介 姓名 :建造者模式 英文名 :Bu...

网友评论

      本文标题:建造者模式

      本文链接:https://www.haomeiwen.com/subject/yytlxktx.html