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

 

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         练习:Frame2个面板,第一个面板上有一个按钮,第二个上有一个文本框,现在要将他们组合在一起放在Frame上,用建造模式实现并且总结有什么好处。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值