亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

抽象與信息隱藏與封裝

抽象與信息隱藏與封裝

炎炎設計 2019-07-26 14:13:47
抽象與信息隱藏與封裝你能告訴我抽象化和信息隱藏在軟件開發方面?我很困惑。抽象隱藏細節實現,信息隱藏抽象事物的全部細節。
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊


去源頭!Grady Booch說(在面向對象的分析和設計中,第49頁,第二版):

抽象和封裝是互補的概念:抽象集中于對象的可觀察行為。封裝集中于導致此行為的實現.。封裝通常是通過信息隱藏來實現的,而信息隱藏是隱藏對象的所有秘密的過程,而這些秘密與對象的本質特性無關。

換句話說:抽象=外部對象;封裝(通過信息隱藏實現)=對象內部,

示例:在.NET Framework中,System.Text.StringBuilder類提供對字符串緩沖區的抽象。此緩沖區抽象允許您使用緩沖區而不考慮其實現。因此,您可以將字符串附加到緩沖區,而不必考慮StringBuilder內部跟蹤指向緩沖區的指針,并在緩沖區滿時管理內存(通過信息隱藏進行封裝)。

RP




查看完整回答
反對 回復 2019-07-27
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

“任擇議定書”用他發現的幾處引文更新了他的問題,即愛德華·V·貝拉德(Edward V.Berard)題為“抽象、封裝和信息隱藏”的文章..我正在重新發布一個略為擴展和重新格式化的OP更新版本,因為它本身應該是一個答案。

(所有引文摘自上述文章。)

抽象:

“關于抽象的一個困惑之處在于它既作為一個過程又作為一個實體使用。抽象作為一個過程,表示對一個項目或一組項目的基本細節的提取,而忽略了不必要的細節。抽象作為一個實體,表示一個實際項目的模型、視圖或其他集中的表示形式。”

信息隱藏:

“它的界面或定義是為了盡可能少地揭示其內部運作情況?!?/em>-[Parnas,1972 b]

“抽象可以[…]作為一種識別哪些信息應該隱藏的技術。”

當人們不能區分信息的隱藏和用來幫助識別要隱藏的信息的技術(例如抽象)時,就會產生混淆。

封裝:

“它[…]是指圍繞一些事物集合建造一個膠囊,在這種情況下是一個概念上的障礙。”-[Wirfs-BRock等人,1990年]

作為一個過程,封裝是指將一個或多個項目封裝在[…]容器中的行為。封裝作為一個實體,是指包含(包含、封裝)一個或多個項目的包或外殼。

“如果封裝是‘與信息隱藏相同的事情’,那么人們可能會提出這樣的論點:‘所有封裝的東西都是隱藏的?!@顯然是不正確的。”

結論:

“抽象、信息隱藏和封裝是非常不同但關系密切的概念。人們可以說,抽象是一種技術,可以幫助我們識別哪些特定的信息應該可見,哪些信息應該隱藏。然后,封裝是一種將信息包裝起來的技術,以隱藏應該隱藏的信息,并使意圖可見的信息可見。”




查看完整回答
反對 回復 2019-07-27
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

Abstraction是通過在基本功能之上提供一個層來隱藏實現細節。

Information Hiding隱藏受該實現影響的數據。使用privatepublic就在這下面。例如,隱藏類的變量。

Encapsulation只是將所有類似的數據和函數放入一個組,例如Class在方案編制方面;Packet在關系網里。

通過使用類,我們實現了所有三個概念-AbstractionInformation HidingEncapsulation




查看完整回答
反對 回復 2019-07-27
  • 3 回答
  • 0 關注
  • 647 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號