设计模式之——build
来源:互联网 发布:英白罗 知乎 编辑:程序博客网 时间:2024/05/15 08:42
Builder模式是将构建复杂对象的过程和它的部件解耦.
因为一个复杂的对象,不但有很多大量组成部分,如汽车,有很多部件:车轮 方向盘 发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配成一辆汽车,这个装配过程也很复杂(需要很好的组装技术),Builder模式就是为了将部件和组装过程分开.
理解Builder模式:
生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方
向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行组装。最后得到丰田汽车.
举例:
看到网上一个造房子的例子比较好理解,所以就拿来借用下.造房子本身比较复杂,因为各个部件如门,窗,墙,栋梁等需要建筑工人的构造,还有各个部件的组装就更显得重要而复杂,所以一般都要有设计师来画图来指挥各个部件的组装.而设计师本身也不干活,光是下命令,这里砌一堵墙,这里砌一扇门,这样建筑工人开始建设,最后,我可以向建筑工人要房子了。在这个过程中,设计师是什么也没有,除了他在脑子里的设计和命令,所以要房子也是跟建筑工人要,记住了!
package builder;
public interface Builder
{
public void makeWindow();
public void makeFloor();
public Room getRoom();
}
/*************************************************************/
package builder;
public class Designer {
public Designer() {
}
public void order(Builder builder)
{
builder.makeWindow();
builder.makeFloor();
}
}
/*************************************************************/
package builder;
public class Worker implements Builder{
private String window="";
private String floor="";
public Worker() {
}
public void makeWindow(){
window=new String("window");
}
public void makeFloor(){
floor=new String("floor");
}
public Room getRoom()
{
if((!window.equals(""))&&(!floor.equals("")))
{
System.out.println("room ready!");
return new Room();
}
else return null;
}
}
/*************************************************************/
package builder;
public class Room {
private String window="";
private String floor="";
public Room() {
}
}
/*************************************************************/
package builder;
public class Client {
public Client() {
}
public static void main(String[] args) {
Builder worker=new Worker();
Designer designer=new Designer();
designer.order(worker);
worker.getRoom();
}
}
- 设计模式之——build
- 设计模式(1)—Build模式
- 设计模式之Build(生成者模式)
- android设计模式之build模式
- 设计模式学习笔记(二)——Build生成器
- 设计模式——建造者Build(Unity3D中应用)
- 一日一设计模式之C++篇(Build模式)
- java build设计模式
- Build设计模式
- JAVA设计模式 Build 模式
- 设计模式之——工厂模式
- 设计模式之——建造模式
- 设计模式之——状态模式
- 设计模式之——观察者模式
- 设计模式之——状态模式
- 设计模式之——观察者模式
- 设计模式之——工厂模式
- 设计模式之——代理模式
- 心有千千结(四)
- XMLHttpRequest对象
- 名师李涛老师主讲 Photoshop CS2 (全教程下载)
- 设计模式 [ 工厂模式 ]
- 心有千千结(五)
- 设计模式之——build
- 心有千千结(六)
- 学了Java就一定要使用Java进行软件开发吗?
- 心有千千结(七)
- Zend Studio以及开发框架(引擎)使用上的个人总结(无参考价值、个人备忘)
- C#中的一些技巧
- XOOPS - 模块 - Article文章管理
- crystal report 报表制作
- Ajax核心工作机制