kvi*_*sta 15
如其他答案所述,您只需调用setter方法即可.
通常,在创建它们之外的范围内变异对象可能很危险:
http://en.wikipedia.org/wiki/Functional_programming
也就是说,有时您只想在同一个逻辑范围内封装逻辑位,您希望修改传入的对象的值.因此,我将使用的规则是,只要所有调用代码都是完整的知道这样的突变,你可以在你传递对象的方法中调用对象上的setter方法(并且你应该创建一个setter方法,如果你没有).
一般来说,如果你调用一个函数来改变你的代码库中多个位置的参数,你会发现它变得越来越容易出错,这就是函数式编程得到回报的原因.
因此,故事的寓意是:如果您的调用者完全了解此类突变,您可以更改方法中的值,但通常您应该尝试避免它,而是在其范围内更改它创建(或创建副本).
| 归档时间: |
|
| 查看次数: |
23755 次 |
| 最近记录: |