假设我有一个类,每当我设置某些属性bla
,foo
(可以在外部和内部设置)时,我想调用该类的另一个方法,让我们调用它{{ 1}}。
在直接设置内部值时,简单地调用onChangeFunction()
是否是一种好方法,例如
onChangeFunction()
或者最好还是通过使用内部setter方法设置这些变量function someFunction()
// Some Calculations here ...
this.bla = some_value;
this.onChangeFunction()
end
和bla
,因为有一个触发它的特定动作,因此它会更清楚地排列代码。
我甚至更进了一步:假设我不需要可以从外部调用的外部设置器(访问类型= foo
),发现{{1}还是不错的由于触发的set-action,setter执行相同的方法并且只使用setter?
编辑:我的意思如下:即使我没有公共设置器(因为不应该有公共访问来设置变量,因为它只是一个内部变量)它是否仍然是很高兴有一个public
的setter - 只是因为触发了动作的事情?
提前致谢!
答案 0 :(得分:1)
我认为从长远来看,总是使用setter并从setter中调用onChangeFunction()
更不容易出错。
您没有指定您的编程语言,但有些语言允许用户定义一个看起来像数据成员的“属性”,但在尝试更改它时总是调用一个函数。例如,请参阅Python中的property
et al。
关于你的第二个问题,我认为拥有private
二传手问题没有任何问题。