Java设计模式学习03——建造者模式
来源:互联网 发布:vb api浏览器 user32 编辑:程序博客网 时间:2024/05/20 05:24
一、场景
当需要生产一辆汽车时,我们需要为其装配发动机、轮胎、座椅等等部件,这个装配过程是比较复杂的而且也需要较高的组装技术。而建造者模式(Builder Pattern)就是为了将部件与组装分离开。
二、 概念
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。
建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。
三、建造者模式结构组成
- Product: 表示被构造的复杂对象,其中包含需要构建的部件属性。
- Builder: 创建一个产品对象的各个部件指定抽象接口。
- ConcreteBuilder: 实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示。
- Director: 调用具体建造者角色以创建产品对象。
下面以构建一辆汽车为例,写示例代码:
1.Product角色:组装一辆汽车首先的有各种配件,如发动机、轮胎、座椅等。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
2.Builder角色:知道了所需配件后,就需要生产配件了,定义一个生产配件的抽象建造者接口。
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
3.ConcreteBuilder角色:实现抽象的 建造者接口生成具体的建造者,并开始生产具体的配件。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
4.Director角色:在生产出配件后,由指导者指导组装配件生成汽车。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
5.最终得到一辆汽车:
阅读全文
0 0
- Java设计模式学习03——建造者模式
- Java设计模式学习03——建造者模式
- 设计模式学习—建造者模式
- java设计模式—建造者模式
- java设计模式—建造者模式
- Java设计模式—建造者模式
- java 设计模式学习 建造者模式
- 【Java设计模式03】——建造者模式
- 设计思想学习—建造者模式
- Java设计模式——工厂模式,建造者模式
- 学习设计模式之禅——建造者模式
- 设计模式学习笔记——建造者模式
- 设计模式学习笔记——建造者模式
- 设计模式学习6——建造者模式
- 学习设计模式(6)——建造者模式
- 设计模式学习笔记——建造者(Builder)模式
- 九、建造者模式——设计模式学习笔记
- 【软考学习】设计模式——建造者模式
- 例题1.25 侏罗纪 Jurassic Remains UVALive
- python rest_framework
- HDU
- java中的Error和Exception层级关系示意图
- J
- Java设计模式学习03——建造者模式
- 【深度学习】人脸识别、视频中找人的实现
- python字典和JSON格式的转换
- MapReduce的shuffle阶段
- 2017智慧树中国近代史新编答案单元测验答案
- H
- java 编程思想的学习笔记
- oracle应用
- hash table