您的位置:首页 > 其它

设计模式学习3 -- 建造模式

2009-11-12 12:45 239 查看

1. 建造模式

1.1. 概述

l 在Windows中打开一个计算器,如果要你编写这个应用,你如何做?
l 写一个类,在构造函数里面将各个控件加上去?
l 考虑如下问题
l 将数字键全部改颜色
l 将最左边四个键放在最右边
l 很明显,事情变得非常麻烦

1.2. 解决方法:使用建造模式

编写一个类专门每个组件的创建,一个类进行调用每个组件
负责每个组件的创建,代码如下:

//由四个小模块组成

class Builder {//负责各个模块的生成
public Panel getPanel1(){ //以后修改时,只需要修改相应的函数
Panel p1 = null;
//建造p1
return p1;
}
public Panel getPanel2(){
Panel p2 = null;
//建造p2
return p2;
}
public Panel getPanel3(){
Panel p3 = null;
//建造p3
return p3;
}
public Panel getPanel4(){
Panel p4 = null;
//建造p4
return p4;
}
}
组合每个组件的类,代码如下:

class Director{

Builder builder = new Builder()
public void contruct(){
Panel p1 = builder.getPanel1();
Panel p2 = builder.getPanel2();
Panel p3 = builder.getPanel3();
Panel p4 = builder.getPanel4();
//组装
}
}

1.3. 建造模式要点

l 编写类Builder做实际的每个部分的建造工作
l 编写Director类对每个部分的建造工做进行调用,其中的组装过程由它控制

1.4. 建造模式小结

l 首先假设一个复杂对象是由多个部件组成的,并且改变的机会较大,Builder模式是把复杂对象的创建和部门的创建分别开来
l 练习:Frame上2个面板,第一个面板上有一个按钮,第二个上有一个文本框,现在要将他们组合在一起放在Frame上,用建造模式实现并且总结有什么好处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: