由于封装和抽象都与信息隐藏有关,我可以将封装理解为抽象的子集吗?
答案 0 :(得分:8)
'抽象'是一个 概念 ,它是定义或理解特定“事物”(无论可能是什么)的想法通过其基本属性或行为。
'封装'是一种计算机科学 技术 ,用于生成允许处理具体对象的类以一种将它们简化为抽象成分的方式。
在计算机科学领域,其他技术,如使用图形和其他数据结构,是为各种潜在“事物”提供抽象的另一种方式,即使它们看起来不是什么如图(或矩阵或其他结构)具有在这些结构中体现的一些基本特征。
在其他领域,抽象可以以非常多样化的方式实现,例如在人类大脑中工作的永无止境的分类过程,其创建和维护“原型”(高级不变表示)代表日常概念。
答案 1 :(得分:2)
不幸的是,上面提到的三个术语通常可以互换使用,无论好坏。
术语封装通常与信息隐藏互换使用。然而,并非所有人都同意这两者之间的区别;人们可能会认为信息隐藏是原则,封装是技术。软件模块通过将信息封装到呈现接口的模块或其他构造中来隐藏信息。
至于你的具体问题,我认为答案是肯定的。封装可能不是最佳的抽象子集。抽象或多或少是理想的;封装
划分构成其结构和行为的抽象元素的过程
是实现良好抽象的一种手段。