当前位置: 首页 > 面试题库 >

Getter和Setters是不好的OO设计?

薛淮晨
2023-03-14
问题内容

简要阅读以上文章后,我发现getter和setter是糟糕的OO设计,应避免使用它们,因为它们与封装和数据隐藏相反。在这种情况下,创建对象时如何避免这种情况,以及如何将一个模型对象考虑在内。

如果需要使用吸气剂或吸气剂,还可以使用其他替代方法吗?

谢谢。


问题答案:

吸气或吸气器本身并不是很糟糕的OO设计

不好的是编码实践,它会自动为每个单个成员包括一个getter和一个setter,无论是否需要该getter /
setter(以及将成员公开而不应该是公共的),因为这基本上将类的实现暴露给外界违反了信息隐藏/摘要的规定。有时,这是由IDE自动完成的,这意味着这种做法比预期的要广泛得多。



 类似资料:
  • 问题内容: 我现在有两个类:RemindersDAO.java和ViewLocalReminders.java。 我试图访问ViewLocalReminders.java中的变量,并且试图从RemindersDAO.java调用它。我通过使用getter / setter方法组合来做到这一点。但是,由于某种原因,我的变量值在getter方法中一直设置为0。这是代码: ViewLocalRemind

  • 问题内容: 我现在有两个类:RemindersDAO.java和ViewLocalReminders.java。 我试图访问ViewLocalReminders.java中的变量,并且试图从RemindersDAO.java调用它。我通过使用getter / setter方法组合来做到这一点。但是,由于某种原因,我的变量值在getter方法中一直设置为0。这是代码: ViewLocalRemind

  • 问题内容: 背景: 我在JavaWorld上找到了这篇文章,其中Allen Holub解释了Getters / Setters的替代方法,该替代方法保留了应隐藏对象的实现的原理(他的示例代码也可以在下面找到)。 据介绍,该班/ / 应该有一个构造函数取一个字符串- 推理是,如果你作为一个键入它,后来需要将其更改为一个,你将不得不修改类的所有用途,以及使用这种模式,您不必。 问题1: 我在想:这难道

  • 使用getters和setters它们只获取和设置——而不是简单地使用这些变量的公共字段有什么好处? 如果getters和setters所做的不仅仅是简单的get/set,我可以很快搞清楚这一点,但是我不是100%清楚如何做到: 比任何更糟糕: 而前者需要的样板代码要少得多。

  • 问题内容: 我目前在设计类时遇到循环依赖问题。 自从我了解Anemic域模型(我一直在做的事情)以来,我一直在努力摆脱创建仅仅是“ getter和setter的存储桶”的域对象,并回到我的OO根。 但是,下面的问题是我遇到的很多问题,我不确定应该如何解决。 假设我们有一个 Team 类,其中有很多 Player 。这是什么运动都没有关系:)球队可以添加和删除球员,就像球员离开球队并加入另一个球队一

  • 我在客户机-服务器体系结构中使用协议缓冲区作为有线数据格式。域对象(JavaBeans)将经历以下生命周期。 用于客户端业务逻辑 转换为协议格式 传送到服务器 转换回域对象 用于服务器端业务逻辑 “协议缓冲器和O-O设计”部分在协议留档中建议在适当的域模型内包装生成的类。 我想找出最好的办法。 例如,我有一个简单的原型定义。 这就是域模型的定义方式。如您所见,数据完全存储在proto builde