




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件設(shè)置修訂原則、物件導(dǎo)向設(shè)置修訂原則、維護(hù)性復(fù)用性開閉原則接口抽象類里氏替換原則依據(jù)接口隔離原則合成/集約復(fù)用原則,軟件維護(hù)性設(shè)置修訂,一個(gè)維護(hù)中的軟件是不斷播放的軟件。 對(duì)需求的修改、過程、接口等的詳細(xì)更改、修改的積累會(huì)導(dǎo)致傳統(tǒng)軟件結(jié)構(gòu)的混亂,軟件經(jīng)常腐敗(可維護(hù)性差、可升級(jí)性差)。 系統(tǒng)設(shè)置修訂者:可辯解為用戶需求變化太大的軟件腐?。禾驳膔igidity太脆弱的fragility再利用率低immobility黏性系數(shù)高的viscosity、軟件可維護(hù)性設(shè)置修訂、軟件腐?。禾驳膔igidity是新功能卷入太多,循環(huán)長(zhǎng)度過于脆弱fragility在一個(gè)地方修正的復(fù)用率低的immobili
2、ty 1,a模塊想復(fù)用,但a卷入BCDE,卷入太多,不復(fù)用2 .不同模塊中的重復(fù)功能、重復(fù)實(shí)現(xiàn)、問題黏性系數(shù)高的viscosity 1,修正,維持原來的設(shè)定修正2 .如果修正破壞原來的設(shè)定修正,總是2的實(shí)現(xiàn)比1容易,黏性系數(shù)過高就會(huì)使軟件程序員采用錯(cuò)誤的方案,并且軟件漸漸腐爛,軟件的維護(hù)性設(shè)定修正, 可維護(hù)性設(shè)置修訂目標(biāo)的可擴(kuò)展性extensibility添加新模塊而不影響傳統(tǒng)模塊的靈活性flexibility修改一個(gè)模塊而不影響其他模塊的插入性pluggability可以輕松刪除一個(gè)模塊、物件導(dǎo)向設(shè)定修訂原則、維護(hù)性復(fù)用性開閉原則接口抽象類里氏置換原則接口隔離原則取決于合成/聚合多重原則分割
3、規(guī)則,軟件復(fù)用性(reuse )設(shè)定修訂1、再利用的重要性: 1、高效率2 .高軟件質(zhì)量3 .維護(hù)性好。 傳統(tǒng)的多路復(fù)用1、復(fù)制、剪切查詢密碼2、算法的多路復(fù)用3、數(shù)據(jù)結(jié)構(gòu)的多路復(fù)用傳統(tǒng)的再利用往往損害軟件的維護(hù)性。 如果AB共享c,而a修改c,則b不行政許可。 軟件復(fù)用性(reuse )設(shè)定修訂2、物件導(dǎo)向設(shè)定修訂的再利用:數(shù)據(jù)的抽象化、封裝、繼承、多態(tài)。 多重化的焦點(diǎn)是包含宏命令商業(yè)邏輯的抽象的水平。不限于函數(shù)和算法。 可維護(hù)性的薩通訊端口可擴(kuò)展性extensibility; 包裝、繼承、多態(tài)通過開關(guān)原則、里氏置換原則、依存逆轉(zhuǎn)原則、組合/集約復(fù)用來保證靈活性flexibility的復(fù)用、
4、相對(duì)獨(dú)立,與其他模塊相松耦合定。 修改后,此模塊不會(huì)傳遞給其他模塊。 用開關(guān)原則、德米特里奧定律、接口隔離原則保證。 如果可插入性pluggability被復(fù)用,則新的類將替換為舊的類,從而容易實(shí)現(xiàn)。 根據(jù)開關(guān)原則、里氏置換原則、組合/聚合服用原則、依存逆轉(zhuǎn)原則進(jìn)行保證。物件導(dǎo)向設(shè)定修訂原則、維護(hù)性復(fù)用性開閉原則接口類里氏置換原則接口隔離原則合成/匯集復(fù)用原則分割原則、開閉原則1、開閉原則OCP : open-closed principle ):1個(gè)軟件實(shí)體必須向擴(kuò)展開放,向修正封閉修改模塊時(shí),請(qǐng)不要修改地進(jìn)行擴(kuò)展,即不要修改原代碼地變更該模塊的動(dòng)作。 增加查詢密碼實(shí)例滿足開閉原則設(shè)定修訂的
5、優(yōu)勢(shì): 1、適應(yīng)性和靈活性2 .實(shí)現(xiàn)穩(wěn)定性和連續(xù)性實(shí)現(xiàn)這一原則是實(shí)現(xiàn)了更高層次、復(fù)用、易維護(hù)的系統(tǒng)。開閉原則2、牛鼻子點(diǎn):抽象設(shè)定修訂:定義系統(tǒng)一次丟失、不修改的抽象設(shè)定修訂。 使這個(gè)設(shè)定修正成為可能的無限行為已在實(shí)現(xiàn)層實(shí)現(xiàn)。 在JAVA中,抽象JAVA類或JAVA接口將所有具體類必須提供的方法的特征定義為系統(tǒng)設(shè)置修訂的抽象層。 這個(gè)抽象層預(yù)見了所有可能的擴(kuò)展。 因此,擴(kuò)展不需要修改抽象層。 在開關(guān)原則中,滿足了“關(guān)閉修正”的原則。另外,從抽象層導(dǎo)出的具體新類可以改變系統(tǒng)的動(dòng)作或開放給擴(kuò)展。開關(guān)原則3、要點(diǎn):抽象化但難以歸納的汽車定義:根據(jù)國(guó)家最新標(biāo)準(zhǔn)GB/T 3730.12001定義的汽車:
6、由動(dòng)力驅(qū)動(dòng)的、具有4個(gè)以上車輪的非軌道裝載車輛,主要用于牽引運(yùn)輸人員和貨運(yùn)商及貨物的車輛特殊用途。 此術(shù)語包括: a )與電力線相關(guān)的車輛,如無軌電車;b )三輪車,整車維修質(zhì)量超過400公斤。 電力動(dòng)車組是汽車,馬拉四輪車怎么樣?根據(jù)美國(guó)汽車工程師學(xué)會(huì)標(biāo)準(zhǔn)SAEJ 687C的汽車定義,是由自己的動(dòng)力驅(qū)動(dòng),裝載駕駛裝置,能夠在固定軌道以外的道路和地區(qū)運(yùn)送客船和牽引車車輛的車輛。 雙輪摩托車是汽車嗎?根據(jù)日本工業(yè)標(biāo)準(zhǔn)JISK 0101,汽車的定義是,自己搭載發(fā)動(dòng)機(jī)和操縱機(jī)構(gòu),不依靠固定軌道和架線,可以在陸上行駛的車輛。關(guān)于開閉策略3、具有可變性的軟件包策略,考慮在設(shè)定修正中可能發(fā)生什么變化,將其
7、打包,考慮可能發(fā)生什么以使該變化不被重新設(shè)定修正。 也就是說,1 .變量必須封裝在一個(gè)對(duì)象中,而不是分散在查詢密碼的許多犄角旮旯中。 同一可變性不同的圖像表示同一繼承層次中的特定子類。 繼承應(yīng)該被看作是軟件包變化的方法。 2 .一方的可變性與另一方的可變性混合使不得。 類圖的繼承結(jié)構(gòu)通常不超過兩個(gè)級(jí)別。 否則,是否意味著兩種不同的可變性混合存在?開關(guān)策略4、策略模式和開關(guān)策略模式:如果有一系列的算法,是否可以封裝和更換每個(gè)算法?來自可變性的打包原則。 是否要查看策略模型? 開閉原則和java日歷表設(shè)定修訂? 怎么解決?物件導(dǎo)向設(shè)置修訂原則、維護(hù)性復(fù)用性開關(guān)原則接口抽象類替換原則接口隔離原則合成
8、/匯集復(fù)用原則中間規(guī)則、JAVA語言接口、接口:電源插座、可微波爐、可筆記本電源。 如果可以動(dòng)態(tài)刪除一個(gè)組件,然后將其替換為另一個(gè)組件,則該組件是可插入的組件。 插座,即接口。 電氣設(shè)備能夠插入部件的可插入部件的關(guān)鍵是存在共同的接口。 接口是實(shí)現(xiàn)組件可插入性的重要接口的定義。 接口是來自系統(tǒng)中不斷出現(xiàn)的方法的方法特征的集合。 JAVA語言的接口,定義接口:“接口”(interface )是來自系統(tǒng)中不斷出現(xiàn)的方法的方法特征的集合。 接口只是方法的特征,沒有方法的實(shí)現(xiàn),因此在不同的地方實(shí)現(xiàn)這些個(gè)的方法時(shí),可以有完全不同的動(dòng)作。 接口,與類最重要的區(qū)別:接口只描述方法的特征,不提供方法的實(shí)現(xiàn)。 類
9、不僅賦予方法的特征,還賦予方法的實(shí)現(xiàn)。 接口分割方法的特征和方法的實(shí)現(xiàn)。 說唱樂接口、類似角色和與該角色相關(guān)的操作和屬性,實(shí)現(xiàn)該接口的類就是扮演該角色的演員。 一個(gè)角色可以由不同的演員扮演不同的演員之間,除了可以扮演共同的角色以外,不要求任何共同點(diǎn)。 如果沒有JAVA語言的接口,接口的語義接口:如果對(duì)象相互關(guān)聯(lián),則通常需要利用其他對(duì)象的行為來完成一項(xiàng)任務(wù)。 如果將對(duì)其他對(duì)象行為的調(diào)用作為硬查詢密碼寫入類,則插入性幾乎為零。 通過聲明類的繼承、抽象超類、子類的行為,具體的類繼承了超類,以不同的方式實(shí)現(xiàn)了超類所聲明的行為。 在客戶端,可以動(dòng)態(tài)決定使用哪個(gè)特定的子類,具有一定的插入性。 但是,Jav
10、a是單一繼承語言,一個(gè)類只能繼承一個(gè)超類。對(duì)于子類,不能添加新的超類功能。 是子類的祖父類,除非設(shè)置了超類。 然而,當(dāng)子類的具體功能如上所述地改變時(shí),結(jié)構(gòu)經(jīng)常被廣泛地調(diào)整。 JAVA語言的接口,接口是插入性的保證關(guān)聯(lián):一個(gè)對(duì)象需要完成一個(gè)塔斯克,知道其他對(duì)象的方法需要調(diào)用,對(duì)象和其他對(duì)象的關(guān)聯(lián)稱為關(guān)聯(lián)。 關(guān)聯(lián)的可插入性:關(guān)聯(lián),調(diào)用類中的方法。 Integer a=String.ToInteger(“12”)關(guān)聯(lián)是接口,而不是特定的類。 實(shí)現(xiàn)接口的所有類都可以滿足要求。 這使您可以將此關(guān)聯(lián)從一個(gè)特定類動(dòng)態(tài)轉(zhuǎn)換為另一個(gè)特定類調(diào)用的可插入調(diào)用。 void mothed1(String a )一個(gè)對(duì)象
11、免不得,是需要調(diào)用另一個(gè)對(duì)象的方法。 對(duì)于接口,此調(diào)用可以調(diào)用實(shí)現(xiàn)該接口的特定類。 您可以完全動(dòng)態(tài)地確定當(dāng)前對(duì)象調(diào)用哪個(gè)特定類的實(shí)例。 JAVA語言的接口,JAVA的類型控制JAVA接口和抽象類,宣告新的類型: JAVA設(shè)計(jì)大師主要使用JAVA接口和抽象類,將軟件單位和內(nèi)部和外部結(jié)合,實(shí)現(xiàn)松耦合。 也就是說,必須使用JAVA接口和抽象類而不是特定類來聲明變量的類型、聲明殘奧元類型、聲明方法的門類型和強(qiáng)制類型轉(zhuǎn)換數(shù)據(jù)。 更好的方法是只使用接口,而不使用抽象類。 理想情況下,特定的java類只需要實(shí)現(xiàn)在java接口和抽象類中聲明的方法,而不應(yīng)該提供多元化的方法。物件導(dǎo)向設(shè)置修改原則、可維護(hù)性復(fù)用性
12、開閉策略接口抽象類策略反轉(zhuǎn)策略接口隔離策略合成/聚合復(fù)用策略中值規(guī)則、抽象類1、JAVA兩種:抽象類:不能斯坦共和國(guó)化、不能生成對(duì)象、可以實(shí)現(xiàn)具體方法。 一定是用于繼承的特定類。 可以斯坦共和國(guó)化。 特定的類不用于繼承。 抽象類和子類的關(guān)系實(shí)際上是數(shù)字大板塊方法的應(yīng)用。 在抽象類和具體類的樹結(jié)構(gòu)中,枝節(jié)點(diǎn)是抽象類,葉結(jié)點(diǎn)是具體類。 查詢密碼代碼重構(gòu)添加老虎鉗(如果b是a的子類,則建構(gòu)c、抽象類或接口)、抽象類2和抽象類必須盡可能多地移動(dòng)從抽象類到多個(gè)特定類的繼承關(guān)系中的公共查詢密碼。 這樣可以提供查詢密碼的再利用率。 由于查詢密碼出現(xiàn)在公共超類中,而不是子類中,因此,如果更改查詢密碼,程序設(shè)計(jì)
13、師只需修改一個(gè)位置,即可提高計(jì)程儀柱的可維護(hù)性。 抽象類包含盡可能少的數(shù)據(jù),消耗內(nèi)存,復(fù)用率不高,所以將數(shù)據(jù)盡可能向下移動(dòng)。 也就是說,盡量放在特定的類而不是超類上。 抽象類3不是針對(duì)抽象計(jì)程儀編程的核心思想的抽象編碼,主要是針對(duì)超類的具體類的計(jì)程儀編程。 重要的是解決查詢密碼復(fù)用的問題。 為了正確使用繼承繼承,類分為類對(duì)接口實(shí)現(xiàn)和接口繼承兩類,類繼承類并實(shí)現(xiàn)繼承。 實(shí)現(xiàn)繼承,容易被濫用。 抽象類盡量使用合成而不是繼承來實(shí)現(xiàn)復(fù)用的目的。 以“組合/聚合復(fù)用原則”為參考,例如抽象類4,繼承復(fù)用的使用情況繼承表示“一般化、特殊化”關(guān)系,抽象的子類表示一般,派生的具體類表示特殊。 Peter Coa
14、d條件: 1,子類是超類的特殊類,而不是超類的角色,以允許使用抽象類。 Has-A關(guān)系必須使用聚合關(guān)系Is-A關(guān)系符合繼承關(guān)系。 Has-A :一個(gè)班是另一個(gè)班的角色-黑社會(huì)的弟弟,大老板的角色,可以交換:人,黑社會(huì)的弟弟。 有一次,也可以制作大老板。 Is-A :一個(gè)班是另一個(gè)班的一種。 鳥-麻雀,白天鵝的種類是不能交換的:鳥,有的是麻雀,有的是白天鵝。2 .如果需要將子類替換為其他類的子類,則絕對(duì)不會(huì)。 3 .子類有擴(kuò)充超類的責(zé)任,沒有替換超類、取消注冊(cè)的責(zé)任。 如果子類需要大量替換超類的行為,則不適用。 4 .只能從分類學(xué)的角度使用繼承,不能從工具類中繼承,面向?qū)ο蟮脑O(shè)定修改原則、維護(hù)性
15、復(fù)用性開關(guān)原則接口抽象類里氏替換原則依賴于反轉(zhuǎn)原則接口隔離原則合成/集約復(fù)用原則德米特里法則,里氏替換原則1, 孫悟空全蓋偏西游記第三回:四海千山都拱橋伏九幽十類被除名孫悟空由陰司牽著,大受打擊,十個(gè)冥王忙說錯(cuò),悟空匿名了。 悟空親自審查,注上孫悟空的名字,直到它的靈魂字達(dá)到一千三百五十號(hào),是天產(chǎn)的石猿,因此壽三百三十二歲,善終。 悟空說:“我也不記得壽數(shù)幾何,只用名字就行,把筆拿來! “那位法官拿著忙不迭筆,把濃墨裝滿了。 悟空曾帶著記賬本來過猴子,但有名的都查過了。 螟蛾下冊(cè)道:“算了,算了! 今天不適合你! 中所述情節(jié),對(duì)概念設(shè)計(jì)中的量體執(zhí)行面積分析。 的雙曲馀弦值。 的雙曲馀弦值。 的
16、雙曲馀弦值。 的雙曲馀弦值。 激烈醒來是南柯一夢(mèng)。 好不容易伸了伸腰,只聽見四健將和眾猴在高聲地叫,“國(guó)王,你吃了多少酒,今晚睡了還不醒? ”“這是一個(gè)很好的例子。” 悟空說:“醒來還小,可是我夢(mèng)見兩個(gè)人來這里勾住我,就把我?guī)У接内さ某情T外,才醒來。 我出示神通,向森羅殿高聲地嚷嚷,和那個(gè)十殿閻王吵架,看了我們的生死簿,有我等的名字,都由我檢查,那個(gè)仆人沒有管轄。 ”“這是一個(gè)很好的例子?!?猴子們低頭致謝。 從此,山猿沒有很多老人,因?yàn)殛幩緹o名。 美麗的猴王說了以前的事,四健報(bào)告了各個(gè)孔妖王,來慶祝。 不到幾天,就有六兄弟姐妹來慶祝,聽賣名,一切歡樂,每天的聚會(huì)都沒問題。 里氏置換的原則1、
17、孫悟空的全蓋偏美猴王將“猿”這個(gè)名字全部刪除,即猴適用,石猴、肉猴全部適用。 或者,應(yīng)用基類并應(yīng)用所有子類。 這是地震震級(jí)置換的原則。地震震級(jí)替換原則1、地震震級(jí)替換原則:只要一個(gè)軟件實(shí)體使用一個(gè)子類,則必須將其應(yīng)用于該子類,并且無法知道子類對(duì)象和子類對(duì)象之間的差異。 兩個(gè)類、一個(gè)base類、一個(gè)derived類和derived類是base類的子類。 如果b是基類對(duì)象,則d是子類對(duì)象。 如果定義了方法(base b ),則必須為方法(d ); 相反,置換不成立。 即,如果是method2(derived d ),則method2(b )同樣不成立。 置換地震震級(jí)的原則是繼承多重化的基礎(chǔ)。 只有
18、當(dāng)派生類可以替換子類并且不影響軟件用戶針織面料的功能時(shí),才能實(shí)際重用基類。里氏置換原則1、基于JAVA的里氏置換原則的支持:基礎(chǔ)類Base、對(duì)象b; 子類Sub、對(duì)象d; 一般而言,如果有method(Base b ),則存在method(d )問題:基類Base,實(shí)現(xiàn)函數(shù)public run (); 函數(shù)private run (); 分析:里氏置換原則的要求是,只要是基類適用的場(chǎng)所,子類一定適用。 因此,子類必須具有基類的所有接口。 可以做得更寬,但不能做得更少。 如果method調(diào)用b的公共run (),也應(yīng)該可以調(diào)用d的run ()。 但是,如果子run被定義為私有,則不能調(diào)用。 在這種情況下,會(huì)發(fā)生錯(cuò)誤。 因此,從地震震級(jí)替換原理的觀點(diǎn)來看,將Sub中的run定義為私有類型是不可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Module 8 Sports Life Unit 1 教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版九年級(jí)英語上冊(cè)
- 副會(huì)長(zhǎng)聘用合同范本
- 前置物業(yè)合同范本
- 勞務(wù)分包泥工合同范本
- 公墓bot項(xiàng)目合同范本
- gps銷售合同范本
- 2024年新疆格瑞汀新材料科技有限公司招聘考試真題
- 七人合同范本
- 勞務(wù)裝修合同范本
- 2024年黑龍江省選調(diào)考試真題
- 口腔正畸學(xué)單詞
- 2022牛排消費(fèi)趨勢(shì)報(bào)告
- TPM╲t4Step Manul(三星TPM絕密資料)
- 細(xì)菌群體感應(yīng)系統(tǒng)及其應(yīng)用課件
- 司法鑒定程序通則(試行)
- 內(nèi)襯修復(fù)用HTPO管材企標(biāo)
- 部編教材一年級(jí)下冊(cè)生字筆順筆畫
- 通達(dá)信指標(biāo)——江恩輪
- 二維火收銀使用手冊(cè)
- 神經(jīng)電生理檢查ppt課件
- 管路滑脫風(fēng)險(xiǎn)評(píng)估表
評(píng)論
0/150
提交評(píng)論