信息隐藏和封装是不是相互独立?

Posted

技术标签:

【中文标题】信息隐藏和封装是不是相互独立?【英文标题】:Is information hiding and encapsulation independent to one another?信息隐藏和封装是否相互独立? 【发布时间】:2016-07-07 14:02:59 【问题描述】:

我知道信息隐藏和封装不一定是一回事,但从定义上看,它们似乎是同义词。这让我想知道一个人是否可以在没有另一个人的情况下存在。

【问题讨论】:

实际上,***文章中关于与 OOP 相关的封装的前几句话完美地回答了这个问题:en.wikipedia.org/wiki/Encapsulation_(computer_programming) 【参考方案1】:

封装是对相关项目进行分组的可能性。这些都是成员变量和方法。

虽然信息隐藏是隐藏内部状态的可能性。

但在实践中,信息隐藏通常被视为封装的一部分。

【讨论】:

【参考方案2】:

我会尝试用简单的方式解释这些事情:

封装是将相关事物组合成一个单元的概念。

信息隐藏是限制访问我们在上述概念中组合在一起的成员的概念。

因此,如果您看到,这两个概念是相似的。在这里我们不能说这些概念是相互依赖的。

【讨论】:

你在自相矛盾。您的信息隐藏定义取决于已经发生的封装,但您声明概念之间没有依赖关系。你不能同时拥有它。 我们可以隐藏或不隐藏数据。所以无论我们组合在一起的东西,都不应该总是隐藏起来。隐藏仅取决于我们希望限制用户访问的数据类型。所以这就是为什么我说它们之间没有依赖关系。

以上是关于信息隐藏和封装是不是相互独立?的主要内容,如果未能解决你的问题,请参考以下文章

《javascript设计模式》读书笔记二(封装和隐藏信息)

C++ 封装 & 信息隐藏

面向对象5——封装和隐藏

隐藏和封装

Java基础04 Java隐藏和封装类的继承多态

OC隐藏和封装