软件良好实践 - 设置和获取方法

时间:2012-03-28 17:51:52

标签: java oop

我想了解在软件良好实践方面使用超类和子类中的setter和getter的想法。 根据您的经验,下面哪种方法是合适的,并且还可以促进良好的软件可重用性:

  1. 在超类中声明受保护的实例变量,并让子类使用它们。
  2. 使用公共getter方法声明超类中的私有实例变量,让子类继承超类中的getter方法。

4 个答案:

答案 0 :(得分:3)

取决于您的编码风格。有些人更喜欢简洁的代码而不是更详细的结构化代码。如果您的最终目标是互操作性和可扩展性,那么您使用getter / setter“更安全”。另一个优点是使用getter / setter可以执行多个操作而不是只执行一个操作,例如getUsers()实际上可以将多个数据行制表。这样您就可以合并该操作,而不必在子类中重复它。

用你最好的判断。如果值是简单的布尔值或字符串,则可能不需要g / s。如果它们与查询相关或对状态或数据进行特定的,重复的修改,请使用g / s方法。

答案 1 :(得分:1)

这两种方法都可以接受。通常情况下,我会使用公共getter / setter方法,因为任何人都可以使用它们,而不仅仅是子类。

答案 2 :(得分:1)

我选择数字1.这正是protected存在的情况。 getters和setter适用于使用其他非相关类的类。

答案 3 :(得分:1)

当我要创建一个抽象类时,我主要选择1。

否则,我总是选择2(创建getter / setter)。这是因为:

  1. 不仅可以避免任何意外/意外修改 class的成员变量,当你要去的时候它也会有所帮助 为您的类创建jUnit测试用例。

  2. 将课程解耦。

  3. 任何关于面向对象编程的好书都会列出使用getter和setter的其他好处。