`
xuela_net
  • 浏览: 495681 次
文章分类
社区版块
存档分类
最新评论

设计模式之十一:创建模式(Builder Pattern)

 
阅读更多

GOF 建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式主要由以下部分组成。

建造者接口:给出一个接口,以规范产品对象的各个组成成分的建造,这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。

具体建造者:实现了建造者接口。针对不同的商业逻辑,具体化复杂对象的各部分创建。创建完成后,提供产品的实例。

指导者:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序创建。

产品:要建造的复杂对象。

创建者模式的使用范围:

(1)需要生成的产品对象有复杂的内部结构。

(2)需要生成的产品对象的属性相互依赖,建造者可以强迫生成顺序。

(3)在对象创建过程中会使用到系统中的一些其他对象,这些对象在产品对象的创建过程中不易得到。

实现效果:

(1)建造者模式的使用时产品的内部表象可以独立的变化。使用建造者模式可以使客户端不必知道产品内部组成的细节。

(2)每一个Builder都相对独立,而其他的Builder无关。

(3)模式所创建的产品易于控制。


代码:

package com.google.design.build;

//复杂对象
public class Person {
private String foot;
private String body;
private String head;

public String getFoot() {
return foot;
}

public void setFoot(String foot) {
this.foot = foot;
}

public String getBody() {
return body;
}

public void setBody(String body) {
this.body = body;
}

public String getHead() {
return head;
}

public void setHead(String head) {
this.head = head;
}
}

package com.google.design.build;

//子类
public class Man extends Person{
}

package com.google.design.build;

//建造者接口
public interface Builder {
void buildFoot();
void buildBody();
void buildHead();

public Person buildPerson();
}

package com.google.design.build;

//具体建造者
public class PersonBuilder implements Builder{
Person man;
public PersonBuilder() {
man = new Man();
}

@Override
public void buildFoot() {
System.out.println("shuangjiao");
}

@Override
public void buildBody() {
System.out.println("shenti");
}

@Override
public void buildHead() {
System.out.println("toubu");
}

@Override
public Person buildPerson() {
return man;
}
}

package com.google.design.build;

//指导者
public class Director {
public Person constructPerson(PersonBuilder pb) {
pb.buildBody();
pb.buildFoot();
pb.buildHead();

return pb.buildPerson();
}
}

分享到:
评论

相关推荐

    36种最新设计模式整理

    36种最新设计模式整理 Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 ...

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...

    [创建型模式]设计模式之建造者模式(Builder Pattern)

    NULL 博文链接:https://jacky-dai.iteye.com/blog/2295399

    设计模式:可复用面向对象软件的基础--详细书签版

     “[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pattern)  抽象工厂模式(Abstract Factory Pattern)  建造者模式(Builder Pattern)  原型模式...

    33种JAVA设计模式DEMO

    这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式...

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

    软件体系结构与设计模式课堂笔记.docx

    3.设计模式Design Pattern:创建型模式(厂模式Factory、抽象工厂模式Abstract Factory、单例模式Singleton、建造者模式Builder、原型模式Prototype和对象池模式Object Pool Pattern)、结构型模式(适配器模式、...

    C#设计模式_设计模式_C#_

    建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite ...

    C#设计模式-吕震宇

    C#设计模式(8)-Builder Pattern C#设计模式(7)-Singleton Pattern C#设计模式(6)-Abstract Factory Pattern C#设计模式(5)-Factory Method Pattern C#设计模式(4)-Simple Factory Pattern C#设计模式...

    C#设计模式.PDF

    C#设计模式(8)-Builder Pattern 57 一、 建造者(Builder)模式 57 二、 Builder模式的结构: 58 三、 程序举例: 58 四、 建造者模式的活动序列: 62 五、 建造者模式的实现: 62 六、 建造者模式的演化 68 七、...

    32种设计模式

    C# 32种设计模式: 创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) ...

    设计模式之创建型模式

    用VC6.0开发的设计模式模版,此资源是创建型模式源码,有AbstractFactory, BuilderPattern, PrototypePattern ,SingletonPattern ,Factory模式五种模式,是参考于《设计模式精解-GoF 23种设计模式解析附C++实现...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式...

    软件开发中的23种设计模式

    23种模式(Pattern) 1、创建形模式: 1)、单用型:Singleton 2)、工厂方法型:Factory Method 3)、抽象工厂型:Abstract Factory 4)、原型:Prototype 5)、建造型:Builder 2、结构型模式:类与类之间的调用 1...

    C#设计模式大全

    C#设计模式(8)-Builder Pattern 一、 建造者(Builder)模式 二、 Builder模式的结构: 三、 程序举例: 四、 建造者模式的活动序列: 五、 建造者模式的实现: 六、 建造者模式的演化 七、 在什么情况下...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    java设计模式源码-DesignPattern:设计模式(Java实现源码)

    建造者模式(builderPattern) 原型模式(prototypePattern) 适配器模式(adapterPattern) 桥接模式(bridgePattern) 过滤器模式(filterPattern) 组合模式(compositePattern) 装饰器模式(decoratorPattern) 外观模式...

Global site tag (gtag.js) - Google Analytics