面向?qū)ο缶幊痰暮诵氖浅橄?,其抽象是人類特有的一種思維方式。其中管理抽象的有效方法是使用層級分類,它允許根據(jù)物理意義將復(fù)雜的系統(tǒng)分解為更多更易處理的小塊。
面向?qū)ο缶幊痰暮诵氖鞘裁矗?/span>
面向?qū)ο缶幊痰暮诵氖浅橄?。抽?abstraction)是人類特有的一種思維方式,人們通過抽象處理復(fù)雜性。例如,人們不會把一輛汽車想象成由幾萬個互相獨立的部分所組成的一套裝置,而是把汽車想成一個具有自己獨特行為的對象。
這種抽象使人們可以很容易地將一輛汽車開到雜貨店,而不會因組成汽車各部分零件過于復(fù)雜而不知所措。人們可以忽略引擎、傳動及剎車系統(tǒng)的工作細節(jié),將汽車作為一個整體來加以利用。
使用層級分類是管理抽象的一個有效方法。它允許根據(jù)物理意義將復(fù)雜的系統(tǒng)分解為更多更易處理的小塊。
從外表看,汽車是一個獨立的對象。一旦到了內(nèi)部,會看到汽車由若干子系統(tǒng)組成:駕駛系統(tǒng)、制動系統(tǒng)、音響系統(tǒng)、安全帶、供暖、便攜電話等。再進一步細分,這些子系統(tǒng)由更多的專用元件組成。
例如,音響系統(tǒng)由一臺收音機、一個CD播放器,或許還有一臺磁帶放音機組成。從這里得到的重要啟發(fā)是,通過層級抽象對復(fù)雜的汽車(或任何另外復(fù)雜的系統(tǒng))進行管理。
復(fù)雜系統(tǒng)的分層抽象也能被用于計算機程序設(shè)計。傳統(tǒng)的面向過程程序的數(shù)據(jù)經(jīng)過抽象,可用若干個組成對象表示,程序中的過程步驟可看成是在這些對象之間進行消息收集。
這樣,每一個對象都有它自己的獨特行為特征??梢园堰@些對象當(dāng)作具體的實體,告訴它們做什么事的消息做出反應(yīng)。這是面向?qū)ο缶幊痰谋举|(zhì)。
面向?qū)ο蟮母拍钍荍ava的核心,對程序員來講,重要的是要理解這些概念怎么轉(zhuǎn)化為程序。
在任何主要的軟件工程項目中,軟件都不可避免地要經(jīng)歷概念提出、成長、衰老這樣一個生命周期,而面向?qū)ο蟮某绦蛟O(shè)計,可以使軟件在生命周期的每一個階段都處變不驚,有足夠的應(yīng)變能力。