创建的东西细节复杂,还必须暴露给使用者。屏蔽过程而不屏蔽细节

  1. /**
  2. * 抽象建造者
  3. */
  4. public abstract class AbstractBuilder {
  5. Phone phone;
  6. abstract AbstractBuilder customCpu(String cpu);
  7. abstract AbstractBuilder customMem(String mem);
  8. abstract AbstractBuilder customDisk(String disk);
  9. abstract AbstractBuilder customCam(String cam);
  10. Phone getProduct(){
  11. return phone;
  12. }
  13. }

使用场景

  • StringBuilder:append(); 给谁append呢?
  • Swagger-ApiBuilder: 快速实现。
  • Lombok-Builder模式