在Java类中实现Getter和Setter方法总是合适的吗?



创建Java类时,应该始终实现Getter和Setter方法吗?我了解到,在某些情况下,其他类能够通过Setter方法更改类变量是不可取的,但是只要我们在这些方法内实现输入验证,包括它们总是合适的吗?

如果不一定总是适合包括Getter和Setter方法,请为我们何时应该专门实施而不实施它们提供指南。

简而言之,没有硬性规则。

,如果您认为需要其他类可以访问该字段,则包括一个字段的getter。没有一个完全是您班级工作的领域,并且不打算暴露的领域是完全合适的。让您的Getter返回不是字段本身,而是某些修改的形式,或者它的不变副本(例如,内部List字段的副本)。

也是完全合适的。

如果您认为需要其他类可以免费访问该字段,则包括一个设置器。基本上省略设置器使场只读。您还可以选择包括一种自定义方法来突变您的字段,以代替传统的设置器(例如,add()方法将值添加到内部ListSet,只是为了举个例子)。根据情况,所有方法都是完全合适的。

编辑:根据已建立的术语将"属性"更改为"字段"

imo

如果您的班级不可变,则不需要设定器;只要您将田地决赛最终,我什至会认为getters是可选的。

如果您的班级可变,您可能需要既有固定器和固定器,尤其是对于可以突变的字段。

这里的答案很可能是基于意见/经验,例如我的。

编辑:对于可变字段,我建议使用Getters/Setter,其中Getter返回副本。

最新更新