3 回答

TA貢獻1995條經驗 獲得超2個贊
抽象和封裝是互補的概念:抽象集中于對象的可觀察行為。封裝集中于導致此行為的實現.。封裝通常是通過信息隱藏來實現的,而信息隱藏是隱藏對象的所有秘密的過程,而這些秘密與對象的本質特性無關。
System.Text.StringBuilder
StringBuilder

TA貢獻1876條經驗 獲得超6個贊
抽象:
“關于抽象的一個困惑之處在于它既作為一個過程又作為一個實體使用。抽象作為一個過程,表示對一個項目或一組項目的基本細節的提取,而忽略了不必要的細節。抽象作為一個實體,表示一個實際項目的模型、視圖或其他集中的表示形式。”
信息隱藏:
“它的界面或定義是為了盡可能少地揭示其內部運作情況?!?/em>
-[Parnas,1972 b] “抽象可以[…]作為一種識別哪些信息應該隱藏的技術。”
當人們不能區分信息的隱藏和用來幫助識別要隱藏的信息的技術(例如抽象)時,就會產生混淆。
封裝:
“它[…]是指圍繞一些事物集合建造一個膠囊,在這種情況下是一個概念上的障礙。”
-[Wirfs-BRock等人,1990年] 作為一個過程,封裝是指將一個或多個項目封裝在[…]容器中的行為。封裝作為一個實體,是指包含(包含、封裝)一個或多個項目的包或外殼。
“如果封裝是‘與信息隱藏相同的事情’,那么人們可能會提出這樣的論點:‘所有封裝的東西都是隱藏的?!@顯然是不正確的。”
結論:
“抽象、信息隱藏和封裝是非常不同但關系密切的概念。人們可以說,抽象是一種技術,可以幫助我們識別哪些特定的信息應該可見,哪些信息應該隱藏。然后,封裝是一種將信息包裝起來的技術,以隱藏應該隱藏的信息,并使意圖可見的信息可見。”

TA貢獻1773條經驗 獲得超3個贊
Abstraction
Information Hiding
private
public
Encapsulation
Class
Packet
Abstraction
, Information Hiding
Encapsulation
- 3 回答
- 0 關注
- 647 瀏覽
添加回答
舉報