【问题标题】:Why have package private constructor in @Builder in Lombok?为什么在 Lombok 的 @Builder 中有包私有构造函数?
【发布时间】:2018-03-07 09:01:56
【问题描述】:

最近,我遇到了 Lombok 的 builder 并坦率地说喜欢它。 然后我才知道在许多资源中都描述了 Builder 模式,例如 Effective Java。 Somewhat like this

现在,在这种模式中,构造函数是私有的,因此类的实例只能通过使用构建器来创建。

但是,在 Lombok 的构建器文档中 Builder's Documentation 构造函数的可见性保持包私有。 将其作为包私有的原因可能是什么?

【问题讨论】:

  • 它认为这可能是为构建器启用继承,因为单个私有构造函数会阻止继承。我不确定@Builder 是否真的支持继承。如果您在这里没有得到任何答案,您应该尝试在lombok group 中提问。

标签: java builder lombok


【解决方案1】:

https://softwareengineering.stackexchange.com/questions/362265/builder-with-constructor-or-factory-method 详细描述了您的问题的答案。我看到您的问题更具体到 Project Lombok 的设计,因此您可能想加入社区。但总的来说,我同意接受的答案以及 Lombok 使用工厂方法实现构建器模式的方式。

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 2019-01-03
    • 2011-12-06
    • 2019-10-16
    • 2013-06-24
    相关资源
    最近更新 更多