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