美文网首页初见
建造者模式——创建型

建造者模式——创建型

作者: 摘星马里奥 | 来源:发表于2020-05-31 10:42 被阅读0次

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

用户只需要指定需要建造的类型就可以得到它们,建造过程及细节不需要知道

类型:创建型

适用场景:

    如果一个对象有非常复杂的内部结构(很多属性)

    想把复杂对象的创建和使用分离

   

优点:

    封装性好,创建和使用分离

    扩展性好、建造类之间独立、一定程度上解耦

   

缺点:

    会产生多余的Builder对象

    产品内部发生变化,建造者都要修改,成本较大

   

建造者模式与工厂模式:

    注重点不同:

        建造者模式更注重于方法的调用顺序

        工厂模式注重于产品

    创建对象的粒度不同:

        建造者模式可以创建一些复杂的产品,由各种复杂的部件组成

        工厂模式创建出来的都是一个样子

    关注点不同:

        工厂模式只要把对象创建出来即可

        建造者模式不单只要创建出产品,还要知道这个产品都是由那些部件组成的,而且在某些业务场景下,比如说一定的顺序决定了产出的产品不一样的话,那么这里也要对顺序进行调整,工厂则不关心顺序。

       

coding的UML图V1版:

V2版(链式调用):

Course course = new Course.CourseBuilder.buildCourseName("").buildCoursePPT("").build();

示例:

JDK中

例子一:java.lang.StringBuilder的append()方法

        java.lang.StringBuffer的append()方法(不过是加了synchronized同步的关键字)

       

开源框架中:

例子二:guava中,Immutable不可变这些数据结构的使用方法

Set<String> set = ImmuatbleSet.<String>builder().add("a").add("b").build();

例子三:TokenCache

        guava中的CacheBuilder这个类,典型的建造者模式

例子四:Spring中的BeanDefinitionBuilder

例子五:Mybatis中的SqlSessionFactoryBuilder的build方法中,

        XMLConfigBuilder的parse方法,parse方法又调用了parseConfiguration

       

        典型的:建造者包装一层建造者

相关文章

  • 建造者设计模式-Builder design pattern

    建造者设计模式是创建型设计模式的一种。创建型设计模式处理对象创建的问题。 建造者设计模式,用来构建需要经过若干个建...

  • 设计模式-构建者模式

    概念 建造者模式(英:Builder Pattern)是一种创建型设计模式,又名:生成器模式。GOF 给建造者模式...

  • PHP常用设计模式

    # 创建型 单例模式 工厂模式 工厂抽象模式 原型模式 建造者模式 # 结构型 # 行为型 # 3.注册模式 # ...

  • 23天学习23种设计模式——建造者模式

    是什么——什么是建造者模式 建造者模式(Builder Pattern),是一种对象创建型设计模式。它将一个复杂对...

  • 建造者模式(创建型)

    建造者模式[https://www.runoob.com/design-pattern/builder-patte...

  • 建造者模式——创建型

    定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 用户只需要指定需要建造的类型就可以...

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 创建型模式:建造者模式

    个人公众号原文:创建型模式:建造者模式 五大创建型模式之四:建造者模式。 简介 姓名 :建造者模式 英文名 :Bu...

  • spring 设计模式篇(前)

    设计模式俗称:套路 一、spring常见设计模式 (23种设计模式) 创建型:工厂方法模式、抽象工厂模式、建造者...

  • 创建型设计模式 - 建造者模式

    建造者模式封装一个对象的构造过程,并允许按步骤构造; 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创...

网友评论

    本文标题:建造者模式——创建型

    本文链接:https://www.haomeiwen.com/subject/puslzhtx.html