设计模式第3篇Builder(第一部分)
2004-03-09 10:18
411 查看
设计模式之Builder<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
杨恒贤(yanghx@70345.com)
1. 定义:
Builder模式就是将事物的创建与功能分开,使得利用同样的过程可以创建不同的对象。
Builder模式与Factory模式差不多,他们之间分别就是Builder模式的特点。只通过指定复杂对象的类型和内容来创建对象,用户不必知道实现细节。
说道Builder就必须说明一下Director类,Director类的作用就是遍历Builder创建真正指定的Builder对象。一般利用的是Iterator来遍历。
2. UML图表示
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
![](/Develop/ArticleImages/25/25346/CSDN_Dev_Image_2004-3-71741190.png)
3. 使用
首先假设一个复杂对象是由多个部件组成的,Builder模式是把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示.
我们以汽车为例:
下面是Builder接口代码实现:
/**
* @author yanghx2004
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public interface Builder {
public void buildSteer();
public void buildEngine();
public void
102ea
buildWheel();
Car getResult();
}
上面的接口方法,getResult返回对象,其他以Build开头的是构建部件。
UML图如下:
![](/Develop/ArticleImages/25/25346/CSDN_Dev_Image_2004-3-71741192.png)
下面我们讲述Director类的具体作用
public class Director {
/**
* @link aggregation
*/
Builder lnkCarBuilder = null;
public Director(Builder builder) {
this.lnkCarBuilder = builder;
}
public void construct() {
lnkCarBuilder.buildEngine();
lnkCarBuilder.buildSteer();
lnkCarBuilder.buildWheel();
}
}
根据输入的Builder不同,利用Builder的构建步骤创建不通对象。
汽车对象(你可以Factory扩展)
package com.yjsoft.builder;
/**
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
* @author yanghx2004
*/
public class Car {
private String steer;
private int wheel;
private String engine;
public void show() {
System.out.println("steer:"+steer);
System.out.println("wheel:"+wheel);
System.out.println("engine:"+engine);
}
public String getEngine() {
return engine;
}
public void setEngine(String i) {
engine = i;
}
public int getWheel() {
return wheel;
}
public void setWheel(int i) {
wheel = i;
}
public String getSteer() {
return steer;
}
public void setSteer(String i) {
steer = i;
}
}
设计模式第3篇Builder(第二部分)
杨恒贤(yanghx@70345.com)
1. 定义:
Builder模式就是将事物的创建与功能分开,使得利用同样的过程可以创建不同的对象。
Builder模式与Factory模式差不多,他们之间分别就是Builder模式的特点。只通过指定复杂对象的类型和内容来创建对象,用户不必知道实现细节。
说道Builder就必须说明一下Director类,Director类的作用就是遍历Builder创建真正指定的Builder对象。一般利用的是Iterator来遍历。
2. UML图表示
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
![](/Develop/ArticleImages/25/25346/CSDN_Dev_Image_2004-3-71741190.png)
3. 使用
首先假设一个复杂对象是由多个部件组成的,Builder模式是把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示.
我们以汽车为例:
下面是Builder接口代码实现:
/**
* @author yanghx2004
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public interface Builder {
public void buildSteer();
public void buildEngine();
public void
102ea
buildWheel();
Car getResult();
}
上面的接口方法,getResult返回对象,其他以Build开头的是构建部件。
UML图如下:
![](/Develop/ArticleImages/25/25346/CSDN_Dev_Image_2004-3-71741192.png)
下面我们讲述Director类的具体作用
public class Director {
/**
* @link aggregation
*/
Builder lnkCarBuilder = null;
public Director(Builder builder) {
this.lnkCarBuilder = builder;
}
public void construct() {
lnkCarBuilder.buildEngine();
lnkCarBuilder.buildSteer();
lnkCarBuilder.buildWheel();
}
}
根据输入的Builder不同,利用Builder的构建步骤创建不通对象。
汽车对象(你可以Factory扩展)
package com.yjsoft.builder;
/**
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
* @author yanghx2004
*/
public class Car {
private String steer;
private int wheel;
private String engine;
public void show() {
System.out.println("steer:"+steer);
System.out.println("wheel:"+wheel);
System.out.println("engine:"+engine);
}
public String getEngine() {
return engine;
}
public void setEngine(String i) {
engine = i;
}
public int getWheel() {
return wheel;
}
public void setWheel(int i) {
wheel = i;
}
public String getSteer() {
return steer;
}
public void setSteer(String i) {
steer = i;
}
}
设计模式第3篇Builder(第二部分)
相关文章推荐
- 设计模式第3篇Builder(第二部分)
- 用Java实现的设计模式系列(3)--Builder
- 设计模式笔记——(二:建造者模式 Builder Pattern)
- 设计模式——建造者(Builder)模式
- 设计模式之Builder建造者模式
- Android设计模式——Builder模式之源码使用场景(二)
- 设计模式学习笔记(十二)—Builder建造者模式
- design pattern Builder 建造者设计模式
- 简单写个好理解的Builder设计模式
- java设计模式(5):建造模式(Builder)
- 设计模式-Builder模式
- C++设计模式-Builder建造者模式
- 自己看着视频的理解:设计模式之Builder模式(1)
- Android设计模式(二)- Builder模式
- php设计模式 Builder(建造者模式)
- 设计模式之Builder模式学习文章记录
- Java设计模式----建造者模式(Builder)
- 设计模式杂谈:创建型模式之生成器模式(Builder Pattern)
- 设计模式--Builder
- JAVA设计模式四:---Builder(建造者模式)