gpt4 book ai didi

java - 生成器模式 : Why do we need . build()?

转载 作者:搜寻专家 更新时间:2023-11-01 04:07:59 26 4
gpt4 key购买 nike

在研究构建器模式时,标准模式是这样的:

new SandwichBuilder().salami().pastrami().cat().build();

其中 .salami()、.pastrami() 和 .cat() 返回 SandwichBuilders,而 .build() 返回一个三明治


使用以下约定是否被认为是不好的风格?

new Sandwich().salami().pastrami().cat();

.salami()、.pastrami() 和 .cat() 直接返回 Sandwich,从而避免看似不必要的复杂化?

最佳答案

builder 模式最大的优点之一就是它 build 的对象可以是immutable。 .对于您的第二个示例,假设 salami()pastrami() 等充当标准 setter ,这要么是不可能的,要么如果它们各自返回一个,则效率可能会很低新实例。

JB Nizet 指向 Guava 的 Splitter ,这是后一种情况的一个很好的例子。就您的观点而言,Guava 开发人员一定觉得“放弃看似不必要的复杂性”足以在创建自定义 Splitter 期间容忍一些额外的副本。

关于java - 生成器模式 : Why do we need . build()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21487728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com