【发布时间】:2014-03-30 09:06:28
【问题描述】:
标题说明了一切,当我被问到一个问题,OOP 中的信息处理是抽象还是封装? 我选择了抽象,但我仍然感到困惑,因为在封装中我们也隐藏了字段,而在抽象中我们隐藏了细节。 这方面的任何帮助
【问题讨论】:
标签: oop design-patterns encapsulation abstraction design-principles
标题说明了一切,当我被问到一个问题,OOP 中的信息处理是抽象还是封装? 我选择了抽象,但我仍然感到困惑,因为在封装中我们也隐藏了字段,而在抽象中我们隐藏了细节。 这方面的任何帮助
【问题讨论】:
标签: oop design-patterns encapsulation abstraction design-principles
如果您将封装视为用于创建抽象的工具之一,这可能会有所帮助。在此处查看 wikipedia 条目以进行封装http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)
【讨论】:
Abstraction 通常隐藏信息,而Encapsulation 将可更改的数据与未更改的数据分开。这样Encapsulation就有助于实现Open Closed Principle。
【讨论】:
这是一个不错的answer,我认为它消除了困惑
封装有两个方面;数据 抽象和信息隐藏。 数据抽象是一种从 外。信息隐藏是一种 从里面看到的类型。
- 抽象侧重于对象的外部视图(即界面)
- 封装(信息隐藏)防止客户端看到它的 内部视图,其中的行为 实现了抽象
【讨论】:
封装 = 隐藏复杂性/信息
抽象 = 一种(某种程度上)定义的方式来处理复杂性,使用封装
【讨论】: