3 回答
TA贡献1995条经验 获得超2个赞
抽象和封装是互补的概念:抽象集中于对象的可观察行为。封装集中于导致此行为的实现.。封装通常是通过信息隐藏来实现的,而信息隐藏是隐藏对象的所有秘密的过程,而这些秘密与对象的本质特性无关。
System.Text.StringBuilder
StringBuilder
TA贡献1876条经验 获得超6个赞
抽象:
“关于抽象的一个困惑之处在于它既作为一个过程又作为一个实体使用。抽象作为一个过程,表示对一个项目或一组项目的基本细节的提取,而忽略了不必要的细节。抽象作为一个实体,表示一个实际项目的模型、视图或其他集中的表示形式。”
信息隐藏:
“它的界面或定义是为了尽可能少地揭示其内部运作情况。”
-[Parnas,1972 b] “抽象可以[…]作为一种识别哪些信息应该隐藏的技术。”
当人们不能区分信息的隐藏和用来帮助识别要隐藏的信息的技术(例如抽象)时,就会产生混淆。
封装:
“它[…]是指围绕一些事物集合建造一个胶囊,在这种情况下是一个概念上的障碍。”
-[Wirfs-BRock等人,1990年] 作为一个过程,封装是指将一个或多个项目封装在[…]容器中的行为。封装作为一个实体,是指包含(包含、封装)一个或多个项目的包或外壳。
“如果封装是‘与信息隐藏相同的事情’,那么人们可能会提出这样的论点:‘所有封装的东西都是隐藏的。’这显然是不正确的。”
结论:
“抽象、信息隐藏和封装是非常不同但关系密切的概念。人们可以说,抽象是一种技术,可以帮助我们识别哪些特定的信息应该可见,哪些信息应该隐藏。然后,封装是一种将信息包装起来的技术,以隐藏应该隐藏的信息,并使意图可见的信息可见。”
TA贡献1773条经验 获得超3个赞
Abstraction
Information Hiding
private
public
Encapsulation
Class
Packet
Abstraction
, Information Hiding
Encapsulation
- 3 回答
- 0 关注
- 584 浏览
添加回答
举报