封装有什么意义?

时间:2014-07-16 19:32:00

标签: encapsulation object-oriented-analysis

我只是没有看到封装点,我看到在某些情况下你可以修改一个getter / setter来修改某些东西的行为或跟踪状态,但每当我创建一个非传统的getter / setter,我使用像“修改”或“获取”这样的词,那么浪费时间写出几乎毫无意义且效率低下的重复方法有什么意义呢?

我只是不明白,当我还是一个年轻的程序员时,IRC中的某个人告诉我,我的程序中没有它是导致错误的原因,但我已经知道多年了事实并非如此,我一直在做这件事,那么那又有什么意义呢?

如果我需要稍后进行重构,有很多方法可以解决奇怪的问题,但它们至少在使用重载运算符的语言中是这样的,并且API并不总是必须向后兼容,所以我不明白这一点。

  • 任何人都可以告诉我封装的必要性吗?

1 个答案:

答案 0 :(得分:1)

  1. 在很多情况下你是对的 - 小程序可能不需要封装。
  2. 某些MS基础架构(我认为在几种绑定方案中使用C#/ WPF)需要封装(使用属性),没有它就无法工作。
  3. 如果您在获取/设置方面做的更多而不是更改值或返回它 - 它将使您的代码更好,更健壮(例如,检查或设置器中的其他人员)。
  4. 无论如何都没有人强迫你使用它......