![]() |
1
1
通过使用采用参数的内部方法,而不是将类成员变量视为该类的全局方法,不仅可以更容易地对这些函数进行单元测试,而且还可以减少由于该成员变量被无序更改而引入错误的可能性,特别是当类具有任何事件或工作线程DRIV时。行为。 所以我选择第二个例子,而不是第一个。 编辑 另外,如果您的编程语言支持它们,您可以为这些函数使用指向给定变量类型的指针,以便它们成为(在C样式的psuedo代码中):
而不是
|
![]() |
2
1
我认为你面临的设计问题 Command and state separation 简而言之,我建议DetermineSomeResult()只计算字段“value”的新值而不返回它,获得“value”的唯一方法是通过getCachedValue()。
|
![]() |
3
1
只要给出上面的代码,两个都可以。 然而,这里有一个微妙的问题,我想谈谈。在第一种情况下,您的内部状态可能处于不一致状态。如果PerformosMemoryStuffonValue方法在设置值的最终状态之前引发异常,则可能发生这种情况。第二种解决方案不会在不相容状态下离开,不考虑可能发挥作用的其他因素)。 |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 2 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 2 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 2 年前 |