据我所了解,getter/setter 应该始终制作副本以保护数据。
但是,对于我的许多类,安全的做法是使 getter 返回所请求的属性的引用,这样以下代码就可以正常运行。
感谢您的提前帮助。 S
但是,对于我的许多类,安全的做法是使 getter 返回所请求的属性的引用,这样以下代码就可以正常运行。
b = a.getB();
b.setC(someValue);
实际上改变了对象a的状态。如果我能证明对于我的类来说这样做没问题,那么采用这种方式实现getter是否是好的实践呢?用户是否应该被通知这一点,例如在Javadoc中?我认为这会破坏实现隐藏的范例,因此,我应该始终假设a的状态没有改变,并调用setter。
b = a.getB();
b.setC(someValue);
a.setB(b);
感谢您的提前帮助。 S