Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/建造者模式.md
2023-09-10 10:50:53 +08:00

1.3 KiB
Raw Blame History

上面每个方法都有一个 this.sequence.clear()估计你一看就明白。但是作为一个系统分析师或是技术经理一定要告诉项目成员ArrayList 和 HashMap 如果定义成类的成员变量,那你在方法中的调用一定要做一个 clear 的动作,以防止数据混乱。如果你发生过一次类似问题的话,比如 ArrayList 中出现一个“出乎意料”的数据,而你又花费了几个通宵才解决这个问题,那你会有很深刻的印

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

  • Product 产品类
  • Builder 抽象建造者
  • ConcreteBuilder 具体建造者
  • Director 导演雷

优点

  • 封装性
  • 建造者独立,容易扩展
  • 便于控制细节风险

使用场景

  • 相同的方法,不同的执行顺序,产生不同的事件结果
  • 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时
  • 产品类非常复杂,或者产品类中的调用顺序
  • 对象创建过程中会使用到系统中的一些其他对象,这些对象在产品对象的创建过程中不易得到时