建造者模式

   建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。    用户只需指定需要建造的类型就可以得到他们,建造过程以及细节不需要知道。

适用场景

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

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

优点

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

  • 扩展性好,建造类之间独立,一定程度可以解偶

缺点

  • 产生多余的Builder对象

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

建造者模式与工厂模式的比较

  • 建造者模式更注重于方法的调用顺序,工厂模式注重于创建产品

  • 创建对象的力度有所不同,建造者模式可以创建一些复杂的产品,由各种复杂的部件组成,而工厂模式创建出来的产品都是一个样子

  • 关注点有区别,工厂模式注重的是只要把对象创建出来就ok了,而建造者模式不仅要创建产品,还要知道产品都是由哪些部件组成的

  • 建造着模式关心顺序,而工厂不关心顺序

Golang Demo

Java Demo

UML

建造者模式UML

补充另一个版本的Java/Scala Demo 以及源码解析

Java Demo_

Scala Demo

UML_

源码解析

Last updated