我已经阅读了一些有关此事的内容,我甚至发现了类似的问题,但它并没有真正回答这个问题。对我而言,当我需要在一个类中找到一个私有变量以便在其他地方使用它时,将某些东西私有化只会让我的生活变得更加艰难。那么如果一切都是公开的话会有什么问题呢?它会以某种方式减慢程序本身吗?
答案 0 :(得分:0)
这是因为一个类不应该直接暴露其成员,而必须提供一个代理,通过该代理必须访问成员。 (如getters / setters或Properties)
有关详细信息,请参阅此问题:Why it is recommended to declare instance variables as private?
答案 1 :(得分:0)
您必须考虑代码的可维护性。只有当您是项目中唯一的并且您将是唯一维护和使用代码的人时,才能访问解决方案中的所有变量。如果其他人进入项目并做了完全不同的事情,他们将能够访问您的方法/变量并将事物设置为意外变量。您应该将其视为OOP设计并设计类似的类。
答案 2 :(得分:0)
仅供参考我不相信你应该在SO上问这样基于讨论的问题......但是简单的答案就是这样:不要将你的想法限制在代码的逻辑上。我们都知道有一万种方法可以完成同样的事情。您可以重写一堆代码以避免封装。但是,当您开始处理大型项目或更大的团队时,数据封装提供了一些好处,而不仅仅是编写功能代码:
(1)按概念组织:如果你正在为自行车编码,你会编写一个轮子类,一个框架类,一个把手类等等,你知道去哪里解决问题,甚至可能在几个月的时间之后离开代码;
(2)实现和界面的分离:你可以告诉全世界你的公共界面并私下处理实际的实现,所以人们不必知道代码中的工作方式,他们只知道它有效,像一个黑盒子;如果以后你必须改变私有实现,只要公共接口仍然有效,你就可以自由地执行;
(3)对人类的简化:记住,人类会阅读你的代码,那么你想用项目中的每一点数据和逻辑来抨击它们吗?这只会让一群愤怒的程序员感到高兴。
这是对封装的温和介绍。