打字猴:1.700459661e+09
1700459661 设计模式之禅 [:1700453957]
1700459662 设计模式之禅 11.2 建造者模式的定义
1700459663
1700459664 建造者模式(Builder Pattern)也叫做生成器模式,其定义如下:
1700459665
1700459666 Separate the construction of a complex object from its representation so that the same construction process can create different representations.(将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。)
1700459667
1700459668 建造者模式的通用类图如图11-4所示。
1700459669
1700459670
1700459671
1700459672
1700459673 图11-4 建造者模式通用类图
1700459674
1700459675 在建造者模式中,有如下4个角色:
1700459676
1700459677 ❑Product产品类
1700459678
1700459679 通常是实现了模板方法模式,也就是有模板方法和基本方法,这个参考第10章的模板方法模式。例子中的BenzModel和BMWModel就属于产品类。
1700459680
1700459681 ❑Builder抽象建造者
1700459682
1700459683 规范产品的组建,一般是由子类实现。例子中的CarBuilder就属于抽象建造者。
1700459684
1700459685 ❑ConcreteBuilder具体建造者
1700459686
1700459687 实现抽象类定义的所有方法,并且返回一个组建好的对象。例子中的BenzBuilder和BMWBuilder就属于具体建造者。
1700459688
1700459689 ❑Director导演类
1700459690
1700459691 负责安排已有模块的顺序,然后告诉Builder开始建造,在上面的例子中就是我们的老大,XX公司找到老大,说我要这个或那个类型的车辆模型,然后老大就把命令传递给我,我和我的团队就开始拼命地建造,于是一个项目建设完毕了。
1700459692
1700459693 建造者模式的通用源代码也比较简单,先看Product类,通常它是一个组合或继承(如模板方法模式)产生的类,如代码清单11-12所示。
1700459694
1700459695 代码清单11-12 产品类
1700459696
1700459697 public class Product{
1700459698
1700459699 public void doSomething(){
1700459700
1700459701 //独立业务处理
1700459702
1700459703 }
1700459704
1700459705 }
1700459706
1700459707 抽象建造者如代码清单11-13所示。
1700459708
1700459709 代码清单11-13 抽象建造者
1700459710
[ 上一页 ]  [ :1.700459661e+09 ]  [ 下一页 ]