建造者模式( Builder Pattern)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31638493/article/details/82982711

文档地址:《设计模式之禅》​​​​​​​

 切入故事:变化是永恒的

 定义: Separate the construction of a complex object from its representation so that the sameconstruction process can create different representations.(将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示。)

通用类图:

        

        ● Product产品类

                通常是实现了模板方法模式, 也就是有模板方法和基本方法。 

        ● Builder抽象建造者

                规范产品的组建, 一般是由子类实现。

        ● ConcreteBuilder具体建造者

                实现抽象类定义的所有方法, 并且返回一个组建好的对象。 

        ● Director导演类

                负责安排已有模块的顺序, 然后告诉Builder开始建造

优点:

        1: 封装性

        2: 建造者独立, 容易扩展

        3: 便于控制细节风险

使用场景:

        1: 相同的方法, 不同的执行顺序, 产生不同的事件结果

        2: 多个部件或零件, 都可以装配到一个对象中, 但是产生的运行结果又不相同

        3: 产品类非常复杂, 或者产品类中的调用顺序不同产生了不同的效能

        4: 在对象创建过程中会使用到系统中的一些其他对象, 这些对象在产品对象的创建过程中不易得到

总结:

         建造者模式和工厂模式的区别:建造者模式关注的是产品组成部分的创建过程(细节), 工厂方法则重点关注是创建产品整体(整体)

猜你喜欢

转载自blog.csdn.net/qq_31638493/article/details/82982711