具有静态内部 class 的构建器模式与具有一个抽象和一个+具体实现的构建器设计模式有什么区别

What is the difference between Builder Pattern with static inner class and Builder design patterns with One Abstract and one+ concrete implimentations

我正在学习构建器设计模式,我发现了两个相同的解释。

  1. 使用静态内部构建器 class 适当地 returns 外部 class 对象。
  2. 有了一个 Builder Abstract class,那么相同的多个实现和一个 director class。

我完全搞不清是哪一个了?还是两者兼而有之?

它既是……又是更多。有许多来自不同来源的模式都被称为“Builder”。这并不像您想象的那么不寻常;例如,有许多不同的模式也都被称为“工厂”。

关于你提到的两个。

  1. Josh Bloch 在他的书 Effective Java.
  2. 中推广了静态内部生成器
  3. GoF 在其开创性的 设计模式 一书中普及了抽象多态 Builder。

还有来自其他来源的更有用的构建器模式。参见:Builder isomorphisms.