JAVA 建造者模式

  • 原创
  • |
  • 浏览:131
  • |
  • 更新:
  • |
  • 标签:JAVA 

建造者模式的出现主要用于创建复杂对象,和工厂模式的区别就在于工厂模式注重于创建对象,建造者模式是将复杂的对象进行分解,达到只需要拓展对类的行为无需关注类的内部细节的目的,并且对类有高度封装 。客户端只需要交给一个负责指挥建造的对象的角色,再由具体指挥者指挥建造者进行复杂的操作。

工具/原料

  • IDE

UML类图

  1. 1

    首先看下UML类图关系,WMBuilder和LMBuilder继承Builder来实现Builder的抽象方法(name,bathroom,bedroom,kitchen)。

    再通过Director类来指挥建造者,实现具体复杂的操作

    JAVA 建造者模式
    END
  2. 1
    本页面未经授权抓取自百度经验

设计抽象概念

  1. 1

    首先我们创建Product类,设置4个私有属性:name,bathroom,bedroom,kitchen,再开放对应Set方法,最后添加Show方法来具体展示。如图:

    JAVA 建造者模式
  2. 2

    再创建Builder类,将Product对象供子类使用,开放4个抽象方法name,bathroom,bedroom,kitchen。提供一个获取实例的方法。

    JAVA 建造者模式
    END

实现抽象概念

  1. 1

    通过继承Builder抽象类来重写name,kitchen,bedroom,bathroom方法。每个子类都有自己的具体行为,这里要建立WMBuilder和LMBuilder2个类如下图。

    JAVA 建造者模式
    JAVA 建造者模式
  2. 2

    通过Director类来指挥具体建造者,其中 construct方法执行具体复杂的行为,并返回具体建造者对象,如图中结构。

    JAVA 建造者模式
    END

客户端调用

  1. 1

    最后客户端通过Builder指向对应子类,再将建造者交于Directory进行指挥实现类的复杂行为,整个过程无需关注内部细节。获取实例后调用展示方法。如图:

    通过new出Builder的实例对象(wmbuilder )再将wmbuilder传入 dir的构造参数再通过dir.construct()方法获取Product实例,最后 product调用show()方法输出信息 。

    JAVA 建造者模式
    END

注意事项

  • 需要注意建造者模式的内部结构必须一致,否则不适合设计
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签JAVA