1、建造者模式的本质:
a、分离了对象子组件的单独构造(由 Builder 来负责)和装配(由 Director 负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构造过程复杂的情况下使用。
b、由于实现了构造和装配的解耦。不同的建造器,相同的装配,也可以做出不同的对象;相同的建造器,不同的装配顺序也可以做出不同的对象。也就是实现了建造算法、装配算法的解耦,实现了更好的复用。
2、场景:
- 我们要建造一个复杂的产品。比如,Iphone,这个复杂的产品的建造。有一个问题需要解决:
* 装配这些子组件是不是有个步骤问题?
- 在我们实际开发中,所需要的对象构建时,也非常复杂,有很多步骤需要处理时,需要用到建造者模式。
3、简单的代码示例:(截图较多,认真看看呗)
a、创建一个 Airship 类,并且在 Airship 类中创建 OrbitalModule(轨道舱)、Engine、EscapeTower(逃逸塔) 三个内部类。 (在 Airship 类中 使用这三个类。)
b、创建 AirshipBuilder 接口 和 AirshipDirector 接口,并创建其对应的实现类 ApolloAirshipBuilder 和 ApolloAirshipDirector 类。(在 AirshipDirector 接口 中使用到 AirshipBuilder 接口,二者的关系是聚合的关系。)
c、创建测试类 client05,以及画出这个建造者模式的示例的类图。
注:可以看到,Client05 测试类只和 Airship 类、AirshipDirector 接口以及 AirshipBuilder 接口 打交道,并且实现了建造和装配之间的分离。
4、开发中的应用场景:
- StringBuilder 类的 append 方法。
- SQL 中的 PreparedStatement。
- JDOM 中, DomBuilder、SAXBuilder。
本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1928090
原文地址:http://12402717.blog.51cto.com/12392717/1928090