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