Setter 和 Getter 是用于获取类字段值的方法。它们是一种代码实践,使您独立于该值背后的逻辑,因为您可以返回一个简单的值
public String getName() {
return value;
}
或者做一些更复杂的事情:
public String getName() {
String modValue = new String();
//Lots of code here
return modValue;
}
如果您需要返回其他内容或执行不同操作,与此特定类交互的类仍将调用 setter 和 getter 而不会受到影响(除非您进行重大更改,例如更改值的类型......)。
One classOne = new One();
one.getValue(); //returns the value or executes some logic before. It doesn't matter
//if it changes because the method is the same. Your classes do not
//depend on each other.
吸气剂的替代方案是......这个......
classOne.value;
您可以直接访问该字段,这是代码味道、灾难和许多我没有同义词库的形容词。这样,如果您需要在返回之前做一些有价值的事情(想象一下,如果您返回一个数字,现在需要对其进行四舍五入......您必须更改所有代码或每次获取它时对其进行四舍五入。用一个吸气剂,您可以在返回之前对其进行舍入)。
你应该在这里考虑你的设计,因为如果你想返回一个与其他类的值完全相同的值,你可以考虑将一个类的实例one
放入类中two
,并且只有当它们以某种方式相关时才委托 getter 调用证明了这一点。如果对象不相关,您应该自己设置该值。
为每个类定义了 setter 和 getter,因为它们与每个特定的上下文相关。您不能定义一个被调用或与另一个类相关的 getter,除非这些类是相关的,因为一个包含另一个或者因为它们之间存在某种联系,例如(举一些例子):
- 外部代理重复值
- 两个类共享的外部对象
- 两个类要处理的通用数据源
- 一个类是另一个类的扩展,第二个类是覆盖方法。