![]() |
1
9
我将把布尔值包装成语义枚举。换言之:
变成
|
![]() |
2
4
基本上,您要做的是命名参数,所以我建议每个函数一个类,每个参数都有成员。 然后,呼叫站点看起来会像这样:
然后在函数内部使用arguments.name()等。 这样做的另一个好处是,您可以在不进行大量重载的情况下提供默认参数,并且可以按任意顺序指定参数,因此这是可行的:
所需课程:
顺便说一句,在C中,您可以用自动属性和对象初始值设定项非常优雅地完成这项工作。 |
![]() |
3
2
方法是否总是采用相同的参数集?如果是这样,您可能希望创建一个存储所有数据的数据对象,并且只向函数提供该对象。也许您甚至可以稍后将函数移动到对象中。 有时将方法与许多输入参数放在一起意味着缺少所有这些参数的对象。 我不会费心在一个对象中封装一个布尔值。我觉得不太合适。 |
![]() |
4
1
为什么不为传入方法的不同值提供封装对象,而不是为布尔值提供枚举呢?这样,值就位于getter和setter上,并具有所需的信息:
这样,当您访问数据时,很明显对象中的一个特定元素会做一件或另一件事情。它还减少了方法的参数集,根据MartinFowler的说法,这是一种代码味道。 |
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 3 年前 |
![]() |
Justin · Python自属性重命名 7 年前 |
![]() |
Sabutobi · 长dict属性行的重构 7 年前 |
![]() |
Falco Alexander · 简单LINQ重构/样式 7 年前 |
|
05bs001 · Euler 12需要优化 7 年前 |
![]() |
slartidan · 如何将lambda表达式重构为方法引用? 7 年前 |
|
Alex · 在Java类中频繁使用与映射键相同的字符串[已关闭] 7 年前 |