建造者模式

  • 使用建造者模式 一次性构建出一个对象的所有属性。
  • 构建时使用链式的结构构建对象。
  • 通常的做法是在对象里使用内部类叫做build,把外部对象的属性作为方法声明出来并且有一个方法叫做build 返回对象本身。
  • 还有一个好处,举个例子我这里构建了一个Person 的类,我现在想更改他的年龄,但是不想修改原对象,我可以如下:
// 这里以lombok 的建造者模式为例
Person person = Person.Builder.name().age().xxxxx.build();
person.toBuilder().age(11).build();
  • 现实工作中经常会遇到个问题,我声明了一个对象,一个同事被分配了一个任务,需要做一系列操作,然后他直接对我的对象进行了set,导致我在get 参数的时候获取到了被修改的值,使用toBuilder重新构筑新对象就可以很好的解决这个问题。