成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

面向?qū)ο笤O(shè)計(jì)與分析--概念篇

王軍 / 490人閱讀

摘要:什么事面向?qū)ο竺嫦驅(qū)ο蠓椒ㄊ且环N運(yùn)用對象,類,繼承,封裝,聚合,關(guān)聯(lián),消息,多態(tài)等概念和原則來構(gòu)造軟件系統(tǒng)的開發(fā)思想方法。面向?qū)ο蠓椒ㄒ员姸嗟念惣敖换ツJ筋愰g的協(xié)同工作為中心。

1.什么事面向?qū)ο螅?/b>
面向?qū)ο蠓椒ㄊ且环N運(yùn)用對象,類,繼承,封裝,聚合,關(guān)聯(lián),消息,多態(tài)等概念和原則來構(gòu)造軟件系統(tǒng)的開發(fā)思想(方法)。
2.面向?qū)ο笾械牡幕靖拍睿?/b>
A.對象:把問題域中的事物抽象地表示為系統(tǒng)中的對象,作為系統(tǒng)的基本構(gòu)成單位。
B.屬性和操作:用對象的屬性表示事物的數(shù)據(jù)特征;用對象的操作表示事物的行為特征。
C.對象的封裝:對象的屬性與操作結(jié)合為一體,成為一個(gè)獨(dú)立的、不可分的實(shí)體,對外屏蔽其內(nèi)部細(xì)節(jié)。
D.類:把具有相同屬性和相同操作的對象歸為一類,類是這些對象的抽象描述,對象是類的實(shí)例。
E:繼承:通過在不同程度上運(yùn)用抽象的原則,可以得到較一般的類和較特殊的類。特殊類繼承一般類的屬性與操作,從而簡化系統(tǒng)的構(gòu)造過程及其文檔。
F:多態(tài):多態(tài)性可以簡單地概括為“一個(gè)接口,多種方法”,字面意思為多種形態(tài)。程序在運(yùn)行時(shí)才決定調(diào)用的函數(shù),它是面向?qū)ο缶幊填I(lǐng)域的核心概念。
F.聚合:復(fù)雜的對象可以用簡單的對象作為其構(gòu)成部分。
G.類的封裝:類具有封閉性,把內(nèi)部的屬性和操作隱藏起來,只有公共的操作對外是可見的。
H.消息:對象之間通過消息進(jìn)行通訊,以實(shí)現(xiàn)對象之間的動態(tài)聯(lián)系。總之一句,向?qū)ο蟀l(fā)出的操作請求稱之為消息。即要求對象之間只能通過消息進(jìn)行通訊。

J.關(guān)聯(lián):通過關(guān)聯(lián)表達(dá)類(一組對象)之間的靜態(tài)關(guān)系。
結(jié)構(gòu)關(guān)系:

拓展:消息傳遞機(jī)制與函數(shù)調(diào)用機(jī)制的區(qū)別

第一,在消息傳遞機(jī)制中,每一個(gè)消息被發(fā)送給指定的接收者(對象)。在命令式編程范型中,函數(shù)調(diào)用機(jī)制沒有指定的接收者。

第二,消息的解釋(用來完成操作請求的方法或操作/代碼集)依賴接收者,并且因接收者的不同而異。

第三,在面向?qū)ο蟮姆缎椭?,通常在運(yùn)行時(shí)才能知道給定消息的特定的接收者。

2.1 繼承:益于復(fù)用,提高效率
子類從父類中繼承屬性和操作,根據(jù)需要添加自己的屬性和方法。

一般類與特殊類之間的關(guān)系叫泛化關(guān)系(繼承關(guān)系),簡稱泛化。

多重繼承:允許一個(gè)特殊類具有一個(gè)以上一般類的繼承模式稱作多重繼承(軟件工程師,有本科,有研究所,有大專學(xué)歷的)

2.2 聚合:
一個(gè)(較復(fù)雜的)對象由其他若干(較簡單的)對象作為其構(gòu)成部分,稱較復(fù)雜的對象為聚集(組合),稱較簡單的對象為成分,稱這種關(guān)系為聚合。

2.3 關(guān)聯(lián)
類之間的靜態(tài)聯(lián)系稱作關(guān)聯(lián)。在實(shí)例化后,由類產(chǎn)生對象,由關(guān)聯(lián)產(chǎn)生連接對象的鏈。鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例。 關(guān)聯(lián)的表示符號也稱作實(shí)例連接
2.4 抽象是什么意思?
從事物中舍棄個(gè)別的非本質(zhì)的特征,而抽取共同的、本質(zhì)特征的做法叫抽象。分過程抽象、數(shù)據(jù)抽象
2.5 類和對象
類:把具有共同性質(zhì)的事物劃分為一類,得出一個(gè)抽象的概念。
對象:所有的對象都是類的實(shí)例。實(shí)例能夠在運(yùn)行時(shí)被產(chǎn)生(初始化)或銷毀(刪除)。
2.6 封裝什么意思?
把對象的屬性和操作結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。只是向外部提供接口,降低了對象間的耦合度。
由封裝機(jī)制保證:數(shù)據(jù)不能被對象的使用者直接訪問。只允許通過由對象提供的方法或代碼訪問數(shù)據(jù)。
封裝的結(jié)果:信息隱蔽,
對象的操作定義了其他的對象怎樣獲得對其的訪問。每一個(gè)對象都將提供給所有對象的公共操作公開化。它也提供僅局限于特定對象的其它的操作(受保護(hù)的和私有的)。其他的對象對被請求的對象怎樣提供操作(代碼,內(nèi)部數(shù)據(jù))沒有感知。

2.7 多態(tài)是什么意思?
多態(tài)是指同一個(gè)命名可具有不同的語義。面向?qū)ο蠓椒ㄖ校谝话泐愔卸x的屬性或操作被特殊類繼承之后,具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。     

用途: 把具有共同基類的對象組成一組,并對它們進(jìn)行一致的處理。
如,多邊形下的三角形、長方形、正多邊形。

2.8 行為分析:有靜態(tài),動態(tài)之分
行為分析是我們用來考察一個(gè)對象(類)是怎樣提供它的操作的過程。

靜態(tài)模型:關(guān)系機(jī)制為我們提供了用同等(關(guān)聯(lián)、依賴)和層次(一般化/特殊化和聚合)結(jié)構(gòu)組織類/對象的方法。很多面向?qū)ο蟮膶<野涯P偷倪@部分結(jié)構(gòu)稱作靜態(tài)模型。
靜態(tài)行為:實(shí)現(xiàn)操作的代碼不被任何外部或內(nèi)部的事件(動作)所影響。只要我們使用命令式編程,就可以做到這一點(diǎn)。

動態(tài)行為:在行為中發(fā)生這些變化的原因可能是由于對象存在很多不同的狀態(tài)。隨后,對象根據(jù)它的狀態(tài)做出反映。使用命令式編程技術(shù)不能很好地處理這種類型的行為。使用另外的一種稱為有限狀態(tài)機(jī)的機(jī)制會更好地捕獲這樣的方法。

例如:航班定票系統(tǒng)中的定票過程對象“機(jī)票”的狀態(tài):預(yù)定、等待、確認(rèn)、取消、使用、歸檔
拓展:系統(tǒng)中的對象是相互協(xié)作的,通過發(fā)消息共同完成某項(xiàng)功能。這種協(xié)作的交互性,可以用交互圖來進(jìn)行描述。有很多系統(tǒng)具有并發(fā)行為。從事物的并發(fā)行為的起因上看,每個(gè)并發(fā)行為是主動發(fā)生的。體現(xiàn)在對象上,就是有一種對象是主動的,它代表著一個(gè)進(jìn)程或線程,剩余的另一種對象則是被動的。在交互圖上也能體現(xiàn)出對象間的并發(fā)行為。
3.復(fù)雜性控制:
引入包(package) 的概念,使模型具有大小不同的粒度層次,以利于控制復(fù)雜性。
4.面向?qū)ο蟮膬r(jià)值和作用:
自然語言和編程語言的---語言鴻溝
把數(shù)據(jù)和處理數(shù)據(jù)的過程作為一個(gè)整體,即對象---有助于軟件的維護(hù)與復(fù)用

面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn):

把易變的數(shù)據(jù)結(jié)構(gòu)和部分功能封裝在對象內(nèi)并加以隱藏,
一是保證了對象行為的可靠性;
二是對它們的修改并不會影響其他的對象,有利于維護(hù),對需求變化有較強(qiáng)的適應(yīng)性。

封裝性和繼承性有利于復(fù)用對象。
把對象的屬性和操作捆綁在一起,提高了對象(作為模塊)的內(nèi)聚性,減少了與其他對象的耦合,這為復(fù)用對象提供了可能性和方便性。在繼承結(jié)構(gòu)中,特殊類對一般類的繼承,本身就是對一般類的屬性和操作的復(fù)用。

5.拓展軟件開發(fā)方法:
結(jié)構(gòu)化方法:從算法的角度進(jìn)行建模,所有的軟件都用過程或函數(shù)作為其主要構(gòu)造塊。人們把大量精力都集中在控制流程和大算法的分解上。這種建模的缺點(diǎn)是模型脆弱。需求變動、維護(hù)困難。
面向?qū)ο蠓椒ǎ阂员姸嗟念惣敖换ツJ剑愰g的協(xié)同工作)為中心。        
著重于的數(shù)據(jù)庫方法:以實(shí)體-關(guān)系模型為中心,該模型的行為放入觸發(fā)器和存儲過程中。
對于一個(gè)給定的應(yīng)用系統(tǒng)和開發(fā)方法,上述的任何一種方法可能都是正確的。只是代價(jià)和收益是不同的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28460.html

相關(guān)文章

  • PHP面試之面向對象(1)

    摘要:二面向?qū)ο笥惺裁刺卣髅嫦驅(qū)ο蟮闹饕卣饔谐橄罄^承封裝和多態(tài)。析構(gòu)函數(shù)析構(gòu)函數(shù)是在引入的,它的作用與調(diào)用時(shí)機(jī)和構(gòu)造函數(shù)剛好相反,它在對象被銷毀時(shí)自動執(zhí)行。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。PHP中面向?qū)ο蟪?嫉闹R點(diǎn)有以下7點(diǎn),我將會從以下幾點(diǎn)進(jìn)行詳細(xì)介紹說明,幫助你更好的應(yīng)對PHP面試??嫉拿嫦?qū)ο笙嚓P(guān)的知識點(diǎn)和考題。整個(gè)面向?qū)ο笪恼碌慕Y(jié)構(gòu)涉...

    phodal 評論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來做一個(gè)萬能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進(jìn)行操作,第二類是返回一個(gè)容器接口對象,上節(jié)我們介紹了...

    Dionysus_go 評論0 收藏0
  • php設(shè)計(jì)模式

    摘要:我們今天也來做一個(gè)萬能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對容器接口對象進(jìn)行操作,第二類是返回一個(gè)容器接口對象,上節(jié)我們介紹了...

    vspiders 評論0 收藏0
  • 全棧是概念,興趣亦為追求(全棧開發(fā)者)

    摘要:耐得住寂寞,才能等得到花開慢慢積累自己的知識,不斷疊加,全面優(yōu)化,無論在哪個(gè)領(lǐng)域都可以有你的一席之地,即為有志者事竟成,破釜沉舟,百二秦關(guān)終屬楚也祝我們能向未來發(fā)展的開發(fā)者們苦心人天不負(fù),臥薪嘗膽,三千越甲可吞吳。 我們今天來了聊一聊一個(gè)話題——全棧開發(fā) 作為一個(gè)程序員,不管是Java還是C...

    lbool 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實(shí)體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<