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种最新设计模式整理 Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 ...
设计模式之我见(1):设计模式概述 (100%) 设计模式面面观(2):设计模式基本要素与原则 (100%) 设计模式面面观(3):单件模式(Singletion)-创建型模式 (100%) 设计模式面面观(4):工厂模式...
23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...
NULL 博文链接:https://jacky-dai.iteye.com/blog/2295399
“[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式: 工厂方法模式(Factory Method Pattern) 抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 原型模式...
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式...
用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...
3.设计模式Design Pattern:创建型模式(厂模式Factory、抽象工厂模式Abstract Factory、单例模式Singleton、建造者模式Builder、原型模式Prototype和对象池模式Object Pool Pattern)、结构型模式(适配器模式、...
建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite ...
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#设计模式(8)-Builder Pattern 57 一、 建造者(Builder)模式 57 二、 Builder模式的结构: 58 三、 程序举例: 58 四、 建造者模式的活动序列: 62 五、 建造者模式的实现: 62 六、 建造者模式的演化 68 七、...
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++实现...
10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式...
23种模式(Pattern) 1、创建形模式: 1)、单用型:Singleton 2)、工厂方法型:Factory Method 3)、抽象工厂型:Abstract Factory 4)、原型:Prototype 5)、建造型:Builder 2、结构型模式:类与类之间的调用 1...
C#设计模式(8)-Builder Pattern 一、 建造者(Builder)模式 二、 Builder模式的结构: 三、 程序举例: 四、 建造者模式的活动序列: 五、 建造者模式的实现: 六、 建造者模式的演化 七、 在什么情况下...
工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...
建造者模式(builderPattern) 原型模式(prototypePattern) 适配器模式(adapterPattern) 桥接模式(bridgePattern) 过滤器模式(filterPattern) 组合模式(compositePattern) 装饰器模式(decoratorPattern) 外观模式...