Java设计模式学习03——建造者模式
来源:互联网 发布:c语言在线编程软件 编辑:程序博客网 时间:2024/05/23 17:21
一、场景
当需要生产一辆汽车时,我们需要为其装配发动机、轮胎、座椅等等部件,这个装配过程是比较复杂的而且也需要较高的组装技术。而建造者模式(Builder Pattern)就是为了将部件与组装分离开。
二、 概念
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。
建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。
三、建造者模式结构组成
- Product: 表示被构造的复杂对象,其中包含需要构建的部件属性。
- Builder: 创建一个产品对象的各个部件指定抽象接口。
- ConcreteBuilder: 实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示。
- Director: 调用具体建造者角色以创建产品对象。
下面以构建一辆汽车为例,写示例代码:
1.Product角色:组装一辆汽车首先的有各种配件,如发动机、轮胎、座椅等。
public class Car{ public String engine; public String tyre; public String seat; public Car(){ } public String getEngine() { return engine; } public void setEngine(String engine) { this.engine = engine; } public String getTyre() { return tyre; } public void setTyre(String tyre) { this.tyre = tyre; } public String getSeat() { return seat; } public void setSeat(String seat) { this.seat = seat; }}
2.Builder角色:知道了所需配件后,就需要生产配件了,定义一个生产配件的抽象建造者接口。
public interface Builder { String buildEngine(); String buildTyre(); String buildSeat();}
3.ConcreteBuilder角色:实现抽象的 建造者接口生成具体的建造者,并开始生产具体的配件。
public class CarBuilder implements Builder{ @Override public String buildEngine() { // 生产发动机 return "发动机"; } @Override public String buildTyre() { // 生产轮胎 return "轮胎"; } @Override public String buildSeat() { // 生产座椅 return "座椅"; }}}
4.Director角色:在生产出配件后,由指导者指导组装配件生成汽车。
public class CarDirector { CarBuilder cb; public CarDirector(CarBuilder cb){ this.cb=cb; } public Car constructCar(){ Car car=new Car(); car.setEngine(cb.buildEngine()); car.setTyre(cb.buildTyre()); car.setSeat(cb.buildSeat()); return car; }}
5.最终得到一辆汽车:
public class Client { public static void main(String[] args) { CarDirector carDirector=new CarDirector(new CarBuilder()); Car car=carDirector.constructCar(); System.out.println(car.getEngine()+car.getTyre()+car.getSeat()); }}
1 0
- Java设计模式学习03——建造者模式
- Java设计模式学习03——建造者模式
- 设计模式学习—建造者模式
- java设计模式—建造者模式
- java设计模式—建造者模式
- Java设计模式—建造者模式
- java 设计模式学习 建造者模式
- 【Java设计模式03】——建造者模式
- 设计思想学习—建造者模式
- Java设计模式——工厂模式,建造者模式
- 学习设计模式之禅——建造者模式
- 设计模式学习笔记——建造者模式
- 设计模式学习笔记——建造者模式
- 设计模式学习6——建造者模式
- 学习设计模式(6)——建造者模式
- 设计模式学习笔记——建造者(Builder)模式
- 九、建造者模式——设计模式学习笔记
- 【软考学习】设计模式——建造者模式
- pip更换软件镜像源
- 牛客网 - 剑指Offer - 考点:链表 题目:从尾到头打印链表
- android 自定义View(三) 自定义ViewGroup之可添加的view
- 第八周训练8污损的单据
- mycat配置mysql简单的读写分离
- Java设计模式学习03——建造者模式
- SSM实现最简单的登录验证
- iOS 修改UITextField 的placeholder字体大小和颜色
- Unity Shader基础(1)
- JAVA学习笔记001
- Codeforces Round #377 (Div. 2) C 模拟
- 点击GridView空白区域的事件处理
- python中 strip()方法
- jni之:eclipse上添加javah快捷菜单