使用构建器设计模式有什么缺点。有吗??
编辑 - 我想知道使用构建器设计模式是否有任何不良后果?就像在 GOF 书中一样,他们提到了设计模式的好坏结果。但是他们没有提到构建器设计模式的任何不良后果。
使用构建器设计模式有什么缺点。有吗??
编辑 - 我想知道使用构建器设计模式是否有任何不良后果?就像在 GOF 书中一样,他们提到了设计模式的好坏结果。但是他们没有提到构建器设计模式的任何不良后果。
它确实在 DTO 中创建了更多的代码(并且可能引入更多的复杂性),而不是你有例如构造函数参数和/或设置器/获取器。
在我看来这没什么大不了的,在大多数情况下并没有太多额外的代码。如果您的对象具有一些强制性参数和一些可选参数,那么构建器模式将非常值得。
只有当模式被滥用/误用时,模式才是不利的。即该模式根本没有解决/适合实际的技术/功能问题。然后,您应该寻找另一种模式来解决特定问题。
这并不特别适用于构建器模式,而是一般的设计模式。
更新:如果您有兴趣了解各种设计模式(特别是 GoF 设计模式书中提到的那些)和 Java API 中的真实示例,那么您可能会找到这个答案:Java 中的 GoF 设计模式示例核心库 有用。它包含指向 Wikipedia 文章的链接,详细解释了这些模式。
我支持 Jarle 的帖子。
否则,当谈到缺点时:
构建器模式,当考虑到克服 Java 中缺少可选参数的想法时,您将失去编译器提供的静态分析(以及 IDE 提供的所有不错的重构功能)。这意味着您将仅在运行时检测到某些强制参数丢失,而不是让您的 IDE 立即告诉您有问题...
与望远镜构造器相比