信息隐藏是抽象还是封装?

时间:2014-03-30 09:06:28

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

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

4 个答案:

答案 0 :(得分:1)

如果您将封装视为用于创建抽象的工具之一,那么它可能会有所帮助。有关封装的信息,请参阅维基百科条目http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)

答案 1 :(得分:1)

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

答案 2 :(得分:1)

这是一个很好的answer,我认为它可以解决混乱

  

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

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

答案 3 :(得分:0)

封装=隐藏复杂性/信息

Abstraction =一种(某种程度上)定义的处理复杂性的方法,使用封装