我想了解在软件良好实践方面使用超类和子类中的setter和getter的想法。 根据您的经验,下面哪种方法是合适的,并且还可以促进良好的软件可重用性:
答案 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)。这是因为:
不仅可以避免任何意外/意外修改 class的成员变量,当你要去的时候它也会有所帮助 为您的类创建jUnit测试用例。
将课程解耦。
任何关于面向对象编程的好书都会列出使用getter和setter的其他好处。