*思想構(gòu)建

面向?qū)ο缶幊?/b>

面向?qū)ο缶幊滩壬狭诉M(jìn)化的步伐,增強(qiáng)了結(jié)構(gòu)化編程,實(shí)現(xiàn)了數(shù)據(jù)與動(dòng)作的融合:數(shù)據(jù)層和邏#輯層現(xiàn)在由一個(gè)可用以創(chuàng)建這些對(duì)象的簡(jiǎn)單抽象層來(lái)描述?,F(xiàn)實(shí)世界中的問題和實(shí)體完全暴露了本#質(zhì),從中提供的一種抽象,可以用來(lái)進(jìn)行相似編碼,或者編入能與系統(tǒng)中對(duì)象進(jìn)行交互的對(duì)象中。#類提供了這樣一些對(duì)象的定義,實(shí)例即是這些定義的實(shí)現(xiàn)。

二者對(duì)面向?qū)ο笤O(shè)計(jì)(object-oriented#design,OOD)來(lái)說都是重要的,OOD 僅意味來(lái)創(chuàng)建你采用面向?qū)ο蠓绞郊軜?gòu)來(lái)創(chuàng)建系統(tǒng)。##

?1.1 面向?qū)ο笤O(shè)計(jì)與面向?qū)ο缶幊痰年P(guān)系#面向?qū)ο笤O(shè)計(jì)(OOD)不會(huì)特別要求面向?qū)ο缶幊陶Z(yǔ)言。事實(shí)上,OOD 可以由純結(jié)構(gòu)化語(yǔ)言來(lái)實(shí)#現(xiàn),比如C,但如果想要構(gòu)造具備對(duì)象性質(zhì)和特點(diǎn)的數(shù)據(jù)類型,就需要在程序上作更多的努力。當(dāng)一#門語(yǔ)言內(nèi)建OO 特性,OO 編程開發(fā)就會(huì)更加方便高效。##另一方面,一門面向?qū)ο蟮恼Z(yǔ)言不一定會(huì)強(qiáng)制你寫OO 方面的程序。例如C++可以被認(rèn)為“更好#的C”;而Java,則要求萬(wàn)物皆類,此外還規(guī)定,一個(gè)源文件對(duì)應(yīng)一個(gè)類定義。然而,在Python 中,#類和OOP 都不是日常編程所必需的。盡管它從一開始設(shè)計(jì)就是面向?qū)ο蟮?,并且結(jié)構(gòu)上支持OOP,但#Python 沒有限定或要求你在你的應(yīng)用中寫OO 的代碼。OOP 是一門強(qiáng)大的工具,不管你是準(zhǔn)備進(jìn)入,#學(xué)習(xí),過渡,或是轉(zhuǎn)向OOP,都可以任意支配。

?1.2 現(xiàn)實(shí)世界中的問題#考慮用OOD 來(lái)工作的一個(gè)最重要的原因,在于它直接提供建模和解決現(xiàn)實(shí)世界問題和情形的途#徑。比如,讓你來(lái)試著模擬一臺(tái)汽車維修店,可以讓你停車進(jìn)行維修。我們需要建兩個(gè)一般實(shí)體:#處在一個(gè)“系統(tǒng)”中并與其交互的人類,和一個(gè)修理店,它定義了物理位置,用于人類活動(dòng)。因?yàn)?前者有更多不同的類型,我將首先對(duì)它進(jìn)行描述,然后描述后者。在此類活動(dòng)中,一個(gè)名為Person#的類被創(chuàng)建以用來(lái)表示所有的人。Person 的實(shí)例可以包括消費(fèi)者(Customer),技工(Mechanic),還#可能是出納員(Cashier)。這些實(shí)例具有相似的行為,也有獨(dú)一無(wú)二的行為。比如,他們能用聲音進(jìn)#行交流,都有talk()方法,還有drive_car()方法。不同的是,技工有repair_car()方法,而出納#有ring_sale()方法。技工有一個(gè)repair_certification 屬性,而所有人都有一個(gè)drivers_license#屬性。##最后,所有這些實(shí)例都是一個(gè)檢查(overseeing)類RepairShop 的參與者,后者具有一個(gè)叫#operating_hours 的數(shù)據(jù)屬性,它通過時(shí)間函數(shù)來(lái)確定何時(shí)顧客來(lái)修車,何時(shí)職員技工和出納員來(lái)上#班。RepairShop 可能還有一個(gè)AutoBay 類,擁有SmogZone,TireBrakeZone 等實(shí)例,也許還有一個(gè)叫#GeneralRepair 的實(shí)例。##我們所編的RepairShop 的一個(gè)關(guān)鍵點(diǎn)是要展示類和實(shí)例加上它們的行為是如何用來(lái)對(duì)現(xiàn)實(shí)生活#場(chǎng)景建模的。同樣,你可以把諸如機(jī)場(chǎng),餐廳,晶蕊,醫(yī)院,其至一個(gè)郵訂音樂公司想像為類,它#們完全具備各自的參與者和功能性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容