如何使用类变量?

时间:2018-07-01 13:13:14

标签: class oop methods state private

一个简单的问题。如果我有使用方法 m1 m2 A 类。 m1 更改 A 的状态是否是一个好习惯。然后,调用 m2 时,它依赖于 A 的状态被 m1 更改。换句话说,如果 m2 取决于在调用 m2 之前调用 m1 m1 m2 均为私有。措辞不同是不是私有方法将对象状态视为共享内存?当它们被无序调用时会出现问题。但是这样做的好处是不必复制参数。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的描述不是一个好的设计。

类变量应具有在任何(和所有)方法调用之前和之后都为真的类不变量。呼叫顺序无关紧要。听起来您描述的方式听起来有些时候是不正确的,例如,如果尚未调用 m1 m2 就是这样。

此外,从设计角度来看,类应该封装(隐藏)内部依赖关系。例如,使用类服务(方法)的任何人都不必关心调用顺序。

我的建议是,您将声明(明确地作为注释)那些不变量,然后说明如何保持它们为真(它们唯一可以为假的时间是在方法调用期间)。这可以帮助您减少对呼叫顺序的依赖。

这可能会导致您合并方法中的某些代码,或者使 m2 成为从 m1 调用但不能从外部调用的帮助函数。