fbpx
维基百科

抽象化 (計算機科學)

计算机科學中,抽象化(英語:Abstraction)是將資料與程序,以它的語意來呈現出它的外觀,但是隱藏起它的實作細節。抽象化是用來減少程式的複雜度,使得程式設計師可以專注在處理少數重要的部份。一個電腦系統可以分割成幾個抽象層(Abstraction layer),使得程式設計師可以將它們分開處理。

抽象與抽象層 编辑

抽象就是把一個問題或模型,以不同規則或方法所得出的不同的解(求解方法和解本身即抽象層),這些不同的解可以組合並還原成問題或模型的本身。

抽象的意義是可以忽略不是求解過程中必需的。例如要用電腦程式去模擬「人」,在描述了人的動作(飲食、思考、移動等)符合設計要求後(如可完整表達「人」在坐下時候的動作),其他「人」的細節(軀幹器官、細胞活動乃至人際關係)都可以忽略,以集中設計需要的功能,並減低程序的複雜度

為了使抽象的成品(算法)不會出現問題,要注意抽象時是否漏掉重要特徵。

程式語言 编辑

在程式設計中,高级語言是對機器指令序列的抽象。高階語言的出現,使得程式的編寫得以簡化,極大提高了程式的編寫效率。隨著軟體技術的發展,元件技術進一步提升了程式抽象的級別。

另一種可取的替代方法是設計一種語言機制,允許程式師在需要的時候構建自己的抽象方法。一個通用的機制是使用過程(procedure)。通過分離過程的定義和規則,程式語言包含了兩種重要的抽象方法:參數化抽象(abstraction by parameterization)和規格化抽象(abstraction by specification)。其中:

參數化抽象是用參數替換資料特徵來進行抽象。這樣能夠歸納出模組,從而使其可以用於更多的情況。例如,可以定義一個排序抽象,既能夠實現對實數陣列的排序,又能夠實現對整型陣列的排序,或者甚至對陣列類型這類一般結構都有用。

規格化抽象是將執行細節(即模組如何實現)抽象為用戶所需求的行為(即模組做什麼)。這是從具體實現中抽象出模組,需要的僅僅是模組的實現能夠符合我們所依賴的表述形式。每當將一個過程與一個注釋(這個注釋提供了充分的資訊,是其他人不用看過程主體就能使用該過程)關聯起來,我們就會使用規格化抽象。

程式設計中,抽象類別包括下列4類:

1:過程抽象:能夠引入一些新的操作;

2:資料抽象:能夠引入新的資料物件類型;

3:反覆運算抽象:能夠反覆運算遍歷在集合中的元素,而不必顯示如何獲得元素的細節;

4:類型層次:能夠從多個單獨的資料類型中抽象成幾組相關的類型。

參考文獻 编辑

  • Barbara Liskov, John Guttag著,裘健译.程序开发原理:抽象、规格与面向对象设计.北京:电子工业出版社,2006年10月:第3-5頁。

抽象化, 計算機科學, 此條目需要擴充, 2011年4月21日, 请協助改善这篇條目, 更進一步的信息可能會在討論頁或扩充请求中找到, 请在擴充條目後將此模板移除, 此條目没有列出任何参考或来源, 2011年4月21日, 維基百科所有的內容都應該可供查證, 请协助補充可靠来源以改善这篇条目, 无法查证的內容可能會因為異議提出而被移除, 在计算机科學中, 抽象化, 英語, abstraction, 是將資料與程序, 以它的語意來呈現出它的外觀, 但是隱藏起它的實作細節, 抽象化是用來減少程式的複雜度, 使得程式設計師. 此條目需要擴充 2011年4月21日 请協助改善这篇條目 更進一步的信息可能會在討論頁或扩充请求中找到 请在擴充條目後將此模板移除 此條目没有列出任何参考或来源 2011年4月21日 維基百科所有的內容都應該可供查證 请协助補充可靠来源以改善这篇条目 无法查证的內容可能會因為異議提出而被移除 在计算机科學中 抽象化 英語 Abstraction 是將資料與程序 以它的語意來呈現出它的外觀 但是隱藏起它的實作細節 抽象化是用來減少程式的複雜度 使得程式設計師可以專注在處理少數重要的部份 一個電腦系統可以分割成幾個抽象層 Abstraction layer 使得程式設計師可以將它們分開處理 抽象與抽象層 编辑抽象就是把一個問題或模型 以不同規則或方法所得出的不同的解 求解方法和解本身即抽象層 這些不同的解可以組合並還原成問題或模型的本身 抽象的意義是可以忽略不是求解過程中必需的解 例如要用電腦程式去模擬 人 在描述了人的動作 飲食 思考 移動等 符合設計要求後 如可完整表達 人 在坐下時候的動作 其他 人 的細節 軀幹 器官 細胞活動乃至人際關係 都可以忽略 以集中設計需要的功能 並減低程序的複雜度 為了使抽象的成品 算法 不會出現問題 要注意抽象時是否漏掉重要特徵 程式語言 编辑在程式設計中 高级語言是對機器指令序列的抽象 高階語言的出現 使得程式的編寫得以簡化 極大提高了程式的編寫效率 隨著軟體技術的發展 元件技術進一步提升了程式抽象的級別 另一種可取的替代方法是設計一種語言機制 允許程式師在需要的時候構建自己的抽象方法 一個通用的機制是使用過程 procedure 通過分離過程的定義和規則 程式語言包含了兩種重要的抽象方法 參數化抽象 abstraction by parameterization 和規格化抽象 abstraction by specification 其中 參數化抽象是用參數替換資料特徵來進行抽象 這樣能夠歸納出模組 從而使其可以用於更多的情況 例如 可以定義一個排序抽象 既能夠實現對實數陣列的排序 又能夠實現對整型陣列的排序 或者甚至對陣列類型這類一般結構都有用 規格化抽象是將執行細節 即模組如何實現 抽象為用戶所需求的行為 即模組做什麼 這是從具體實現中抽象出模組 需要的僅僅是模組的實現能夠符合我們所依賴的表述形式 每當將一個過程與一個注釋 這個注釋提供了充分的資訊 是其他人不用看過程主體就能使用該過程 關聯起來 我們就會使用規格化抽象 程式設計中 抽象類別包括下列4類 1 過程抽象 能夠引入一些新的操作 2 資料抽象 能夠引入新的資料物件類型 3 反覆運算抽象 能夠反覆運算遍歷在集合中的元素 而不必顯示如何獲得元素的細節 4 類型層次 能夠從多個單獨的資料類型中抽象成幾組相關的類型 參考文獻 编辑Barbara Liskov John Guttag著 裘健译 程序开发原理 抽象 规格与面向对象设计 北京 电子工业出版社 2006年10月 第3 5頁 取自 https zh wikipedia org w index php title 抽象化 計算機科學 amp oldid 51649880, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。