建造者模式
来源:互联网 发布:怎样才能注销淘宝账号 编辑:程序博客网 时间:2024/05/21 09:17
重点:人都会经历,婴儿、少年、青年、中年、老年。但是每个人又不完全一样。 建造者,在盖楼房,每一个房子肯定都不一样,但是盖楼的流程都是相同的。
作用:保证流程不变。
一般遇到需要 把控流程,细节多样的模式,就可以使用建造者。用一个director类来把控。许多builder去建造 流程 中的 细节产品。
将一个复杂对象的构建 与它的表示分离。使得同样的构建流程,但是有不同的表示。
客户不知道产品内部实现。
builder之间是相互独立的。 比如在游戏中,如果想换个英雄,那么重新new一个concreteBuilder 创建就OK了。很容易扩展。
因为构建出来的都一样,所以对其他模块不影响。
builder:接口,规范建造者,要构建产品的组成,不能随便构建,不设计具体构建。
concreteBuilder:根据接口,具体构建
director:导演,把控流程,保证 复杂对象 各部分,创建的顺序。
product: 最终生成的复杂对象。
//我们要生产出一个人
class Product {
private Head head;
private Hand hand;
private Foot foot;
}
//抽象建造者,必须提供相应的 生成方法,来规范具体生产者。 (接口也是可以的。)
abstract class Builder{
public abstract void builderHead();
public abstract void builderHand();
public abstract void builderFoot();
}
//具体建造者,继承重写里面的方法。提供每个组件的 构建方法。并且设置到 复杂对象中。 并 提供一个 返回复杂对象的方法。
class concreteBuilder extends Builder{
private Product product;
public void builderHead() {
product.setHead(new Head());
}
public void builderHand() {
product.setHead(new Hand());
}
public void builderFoot() {
product.setHead(new Foot());
}
public Product getProduct(){
return this.product;
}
}
//导演。控制 制造的流程。什么时候返回 对象、
class Director{
private Builder builder;
public void Director(Builder builder){
this.builder = builder;
}
public void create1(){
builder.createHead();
}
public void create2(){
builder.createHead();
builder.createHand();
builder.createFoot();
}
}
//我们在 使用时。如何拿到 导演 ‘导’ 好的对象
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director .create1(); //这一步来固定构建顺序。 具体构建 由build觉得。。构建一个 小手 大手 都是concretebuilder决定的。
Product product = builder.getProductor();
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- 建造者模式
- 建造者模式(Builder)
- 建造者模式
- 缓存
- collections
- 关于编码转换的一些问题和整理(持续更新)
- Java基础篇(3)数组排序、复制、字符串大小比较
- 深入浅出JMS(六)--ActiveMQ实现消息队列发送邮件
- 建造者模式
- 安装Broadcom无线网卡驱动
- background-image详解 设置怀旧信封边框
- Postfix邮件服务器搭建之虚拟用户配置
- JZOJ 3.18 1509——【普及模拟】单元格
- Stanford机器学习 第三周:逻辑回归与正则化
- http://blog.csdn.net/poem_qianmo/article/details/19925819
- 丫霸福州麻将
- 系列笔记3、原型模式 -clone()