什么是编程模式Builder
?正如某些教程中所写,它用于防止为一组所有字段变体创建构造函数。
作为替代方案,使用内部类Builder
,其中复制所有具有默认值的字段。该类具有所有字段的设置器。
使用内部类有什么好处Builder
,因为所有字段的默认值都可以在类本身中声明。
private Double emission = 0d;
...
因此,如果没有调用所需的 setter,是否会使用默认值?
什么是编程模式Builder
?正如某些教程中所写,它用于防止为一组所有字段变体创建构造函数。
作为替代方案,使用内部类Builder
,其中复制所有具有默认值的字段。该类具有所有字段的设置器。
使用内部类有什么好处Builder
,因为所有字段的默认值都可以在类本身中声明。
private Double emission = 0d;
...
因此,如果没有调用所需的 setter,是否会使用默认值?
上课时需要构建器:
为所有选项或一个构造函数(比如有 10 个参数)创建构造函数是不方便的。
还有一种情况就是有某个过程需要给对象填充数据(而且在不同的条件下,有的字段可以用,有的不可以),然后给它一个不可变的版本。这样的话,顺带拖一下builder进程,一切准备就绪后,就可以完成build了。
该模式
Builder
经常用于构造的对象有很多字段的情况。它允许传递更多信息和方便的值,例如:构造函数非常臃肿。传递参数时,很容易弄错顺序,比如名字和姓氏。此外,这里不可能考虑默认值。
使用
Builder
'om,代码看起来会更简洁: