码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之建造者模式

时间:2017-05-22 13:41:15      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:设计模式   建造者模式   构建者模式   gof23   

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

设计模式之建造者模式

标签:设计模式   建造者模式   构建者模式   gof23   

原文地址:http://12402717.blog.51cto.com/12392717/1928090

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!