【问题标题】:Information hiding is abstraction or encapsulation?信息隐藏是抽象还是封装?
【发布时间】:2014-03-30 09:06:28
【问题描述】:

标题说明了一切,当我被问到一个问题,OOP 中的信息处理是抽象还是封装? 我选择了抽象,但我仍然感到困惑,因为在封装中我们也隐藏了字段,而在抽象中我们隐藏了细节。 这方面的任何帮助

【问题讨论】:

    标签: oop design-patterns encapsulation abstraction design-principles


    【解决方案1】:

    如果您将封装视为用于创建抽象的工具之一,这可能会有所帮助。在此处查看 wikipedia 条目以进行封装http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)

    【讨论】:

      【解决方案2】:

      Abstraction 通常隐藏信息,而Encapsulation 将可更改的数据与未更改的数据分开。这样Encapsulation就有助于实现Open Closed Principle

      【讨论】:

        【解决方案3】:

        这是一个不错的answer,我认为它消除了困惑

        封装有两个方面;数据 抽象和信息隐藏。 数据抽象是一种从 外。信息隐藏是一种 从里面看到的类型。

        • 抽象侧重于对象的外部视图(即界面)
        • 封装(信息隐藏)防止客户端看到它的 内部视图,其中的行为 实现了抽象

        【讨论】:

          【解决方案4】:

          封装 = 隐藏复杂性/信息

          抽象 = 一种(某种程度上)定义的方式来处理复杂性,使用封装

          【讨论】:

          • 抽象处理复杂性?它不会隐藏你的底层细节吗?
          • 你说得对,我编辑了我的答案,我实际上是在谈论更大范围的功能,但这样更好
          猜你喜欢
          • 2017-03-20
          • 2017-05-01
          • 2018-06-29
          • 2016-07-07
          • 2013-11-25
          • 1970-01-01
          • 2021-07-24
          • 1970-01-01
          • 2012-12-04
          相关资源
          最近更新 更多