




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程技術(shù)與設(shè)計(jì)第二講學(xué)生第一頁,共五十七頁,編輯于2023年,星期三正確性資源結(jié)構(gòu)工程用法解的完全性和正確性;靜態(tài)類和動(dòng)態(tài)類的安全性;多線程的安全性;容錯(cuò)性處理能力;保密性和魯棒性。執(zhí)行效率,時(shí)間復(fù)雜度、消息數(shù)、帶寬要求等;空間消耗,包括存儲(chǔ)單元、對(duì)象、線程、過程、通信通道。處理器等的使用情況;增加的資源,一些隨選信息;動(dòng)態(tài)策略,包括公正性、平衡性、穩(wěn)定性等。模塊性、封裝、耦合、獨(dú)立性;可延展性,包括子類、可協(xié)調(diào)性、發(fā)展性、可維護(hù)性等;可重用性、開放性、可組合性。便攜性、可插入性;前后依賴性;互用性;等等??衫斫庑?、簡單、高雅;執(zhí)行中的易錯(cuò)性;與其他軟件的共存性;系統(tǒng)可維護(hù)性;開發(fā)過程的影響;開發(fā)隊(duì)伍結(jié)構(gòu)及動(dòng)態(tài)特性的影響;用戶參與的影響;生產(chǎn)力、時(shí)間安排、成本的影響;等等。使用規(guī)范;人為因素,如可學(xué)習(xí)性、恢復(fù)能力等;對(duì)不斷變化的環(huán)境的適應(yīng)性;藝術(shù)性;醫(yī)學(xué)和環(huán)境的影響;社會(huì)、經(jīng)濟(jì)、政治的影響;等等。設(shè)計(jì)過程中,針對(duì)設(shè)計(jì)目標(biāo)約束沖突給出的非功能性需求判斷準(zhǔn)則。第二頁,共五十七頁,編輯于2023年,星期三核心共同思想原則:重點(diǎn)解決軟件系統(tǒng)可維護(hù)性和復(fù)用性矛盾。普遍基本單純隱藏重現(xiàn)第三頁,共五十七頁,編輯于2023年,星期三可維護(hù)性好的系統(tǒng)應(yīng)有性質(zhì)(PerterCoad)
可擴(kuò)展性容易加入新的性能靈活性代碼修改少波及其他模塊可插入性容易抽出加入類第四頁,共五十七頁,編輯于2023年,星期三傳統(tǒng)的復(fù)用代碼的剪貼復(fù)用算法的復(fù)用數(shù)據(jù)結(jié)構(gòu)的復(fù)用程序1程序4程序3程序2代碼/算法/數(shù)據(jù)結(jié)構(gòu)第五頁,共五十七頁,編輯于2023年,星期三傳統(tǒng)的復(fù)用的風(fēng)險(xiǎn):影響可擴(kuò)展性——過于僵硬修改多個(gè)軟件成分中復(fù)用源代碼時(shí),需要獨(dú)立地修改檢測每一拷貝。很難在一個(gè)軟件系統(tǒng)里加入一個(gè)新功能。影響靈活性——過于脆弱對(duì)一個(gè)地方的修改會(huì)導(dǎo)致另一個(gè)地方發(fā)生故障,難以跟蹤代碼的變異和使用。模塊A和B同時(shí)使用模塊C的功能。那么當(dāng)A需要C增加一個(gè)新的行為的時(shí)候,B有可能不需要、甚至不允許C增加這個(gè)新行為。影響可插入性——粘度過高代碼、函數(shù)、模塊對(duì)系統(tǒng)的依賴,改動(dòng)意味著破壞原始意圖和框架第六頁,共五十七頁,編輯于2023年,星期三面向?qū)ο笤O(shè)計(jì)的重要語言特性數(shù)據(jù)抽象繼承封裝多態(tài)性實(shí)現(xiàn)概念和定義復(fù)用,促進(jìn)系統(tǒng)的可維護(hù)性。第七頁,共五十七頁,編輯于2023年,星期三接口(interface):對(duì)象全部操作(對(duì)象可以處理的所有請(qǐng)求)的特征(操作的名稱、參數(shù)和返回值)的集合。聲明對(duì)象的類型(Type)——接口標(biāo)記(signature)
包括:變量的類型聲明參量的類型聲明方法的返還類型聲明數(shù)據(jù)類型的轉(zhuǎn)換等第八頁,共五十七頁,編輯于2023年,星期三接口和類的區(qū)別:接口——只描述方法的特征,而不給出方法的實(shí)現(xiàn),接口把方法的特征和實(shí)現(xiàn)分割開來。類——不僅給出方法的特征,面且給出方法的實(shí)現(xiàn)。接口常常代表一個(gè)角色(role),它包裝與該角色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個(gè)接口的類使是扮演這個(gè)角色的演員。一個(gè)角色可以由不同的演員來演.而不同的演員之間除了扮演一個(gè)共同的角色之外,并不要求有任何其他的共同之處。第九頁,共五十七頁,編輯于2023年,星期三類、類型和對(duì)象之間區(qū)別和聯(lián)系:類(class)——定義了一類對(duì)象的共性實(shí)現(xiàn),即對(duì)象的內(nèi)部數(shù)據(jù)與其操作的實(shí)現(xiàn)。類型(type)——只涉及接口(即對(duì)象能作出反應(yīng)的請(qǐng)求的集合)。類定義了一類對(duì)象可執(zhí)行的操作,也定義了對(duì)象的類型。一個(gè)對(duì)象是一個(gè)類的實(shí)例指這個(gè)對(duì)象支持該類定義的接口。第十頁,共五十七頁,編輯于2023年,星期三同一種類型的對(duì)象共享接口部分同一類型接口的對(duì)象可以有不同實(shí)現(xiàn),即不同類的對(duì)象可以有相同的類型。一個(gè)角色可以由不同的演員來演一個(gè)對(duì)象可以有多種類型。一個(gè)類可以同時(shí)實(shí)現(xiàn)幾個(gè)接口。一個(gè)演員可以演不同的角色子類型包含(繼承)了超類型的接口接口是實(shí)現(xiàn)構(gòu)件可插入性的關(guān)鍵。第十一頁,共五十七頁,編輯于2023年,星期三抽象類——為子類定義通用接口。將實(shí)現(xiàn)由子類定義的操作完成。——可以擁有實(shí)例變量,以及一個(gè)或多個(gè)構(gòu)造子(函數(shù))。——構(gòu)造子不能被調(diào)用來創(chuàng)建實(shí)例,抽象類不可以實(shí)例化?!獦?gòu)造子可以被子類調(diào)用,所有子類都可以有共有的實(shí)現(xiàn)抽象類通常代表一個(gè)抽象概念提供一個(gè)繼承的出發(fā)點(diǎn)。由于抽象類不可以實(shí)例化,因此一個(gè)抽象類一定是用來繼承的。第十二頁,共五十七頁,編輯于2023年,星期三抽象類和接口的區(qū)別抽象類允許有所有派生類公共的狀態(tài)和行為。是一種相關(guān)實(shí)體聚集的方式。關(guān)注如何設(shè)計(jì)實(shí)現(xiàn)并封裝這些具體實(shí)體(派生類),而不會(huì)與任何特定于實(shí)現(xiàn)的細(xì)節(jié)相耦合。接口關(guān)注點(diǎn)派生類或?qū)崿F(xiàn)類的對(duì)象的使用。派生類或?qū)崿F(xiàn)類的對(duì)象為了完成其功能應(yīng)該有什么樣的接口。沒有實(shí)例變量和構(gòu)造子(函數(shù))第十三頁,共五十七頁,編輯于2023年,星期三抽象類的作用:用較少的冗余實(shí)現(xiàn)一組具有公共狀態(tài)或行為的對(duì)象設(shè)計(jì)一個(gè)接口找出已定義對(duì)象的公共狀態(tài)或行為用一個(gè)抽象類實(shí)現(xiàn)該接口從這個(gè)抽象類派生具有公共狀態(tài)或行為的對(duì)象優(yōu)點(diǎn):使實(shí)現(xiàn)類更簡單,更容易維護(hù)。第十四頁,共五十七頁,編輯于2023年,星期三具體類非抽象的類稱為具體類,實(shí)現(xiàn)由自身完成。具體類可以實(shí)例化??梢詫?shí)例化,給出一個(gè)有邏輯實(shí)現(xiàn)的對(duì)象模版。具體類不是用來繼承的。(可以繼承)第十五頁,共五十七頁,編輯于2023年,星期三混合類向其他類提供接口,也提供部分接口實(shí)現(xiàn)。與抽象類相似,不能用實(shí)例說明??梢岳^承第十六頁,共五十七頁,編輯于2023年,星期三假設(shè)蛋代表抽象,而雞代表具體。蛋決定雞的性伏,雞是蛋的“實(shí)現(xiàn)”,蛋的類型決定了雞的類型。從這個(gè)角度來講,先有蛋,后有雞。第十七頁,共五十七頁,編輯于2023年,星期三類繼承和接口繼承:繼承:一個(gè)類是另一個(gè)類的子類類繼承(實(shí)現(xiàn)繼承):——根據(jù)某個(gè)原有對(duì)象的實(shí)現(xiàn)來定義另一個(gè)新的對(duì)象的實(shí)現(xiàn)?!獜囊延蓄惱^承必要的需求?!蚕砭幋a和表示方法。接口繼承:——是一個(gè)類實(shí)現(xiàn)了另一個(gè)類的一個(gè)接口——何時(shí)可用一個(gè)對(duì)象替換另一個(gè)對(duì)象?!蚕眍愋??!焕^承抽象類。第十八頁,共五十七頁,編輯于2023年,星期三[問題]:加入一個(gè)新的類,與現(xiàn)有具體類行為有不同的實(shí)現(xiàn)——?jiǎng)討B(tài)的具體類可插入性問題1.使用超類繼承:在類結(jié)構(gòu)中增加一個(gè)超類,聲明出子類要提供的行為為這個(gè)抽象超類提供多個(gè)具體子類,以不同的方法實(shí)現(xiàn)了超類所聲明的行為。客戶端動(dòng)態(tài)地決定使用哪一個(gè)具體子類。第十九頁,共五十七頁,編輯于2023年,星期三如何在具體類繼承結(jié)構(gòu)中增加一個(gè)抽象超類:單繼承的語言,一個(gè)類只能有一個(gè)超類。當(dāng)具體類可能已經(jīng)有了一個(gè)超類,不可能加上新的超類。加新的超類到已有的超類上面,形成超超類?;蛘呃^續(xù)向上移動(dòng),直到類等級(jí)結(jié)構(gòu)的最頂端?!粋€(gè)具體類的可插入性設(shè)計(jì).就變成了對(duì)整個(gè)等級(jí)結(jié)構(gòu)中所有的類的修改??刹迦胄詻]有保證。具體類超類新超超類新具體類。。。。。。與現(xiàn)有具體類行為有不同的實(shí)現(xiàn)第二十頁,共五十七頁,編輯于2023年,星期三2.使用接口概念在一個(gè)類等級(jí)結(jié)構(gòu)中的任何類都是實(shí)現(xiàn)一個(gè)接口這個(gè)接口會(huì)影響到此類的所有子類,但是不會(huì)影響到此類的任何超類。此類將實(shí)現(xiàn)這個(gè)接口所規(guī)定的方法,而其子類則可以從此類自動(dòng)繼承到這些方法,子類可以選擇置換其中的某一些方法或所有方法。這時(shí)候,子類就具有了可插入性。接口類具體類新具體類第二十一頁,共五十七頁,編輯于2023年,星期三關(guān)聯(lián)的可插入性關(guān)聯(lián):一個(gè)對(duì)象知道其他對(duì)象針對(duì)接口的關(guān)聯(lián):不是針對(duì)具體類任何實(shí)現(xiàn)這個(gè)接口的類都可以滿足關(guān)聯(lián)要求??梢詣?dòng)態(tài)地將關(guān)聯(lián)從一個(gè)具體類轉(zhuǎn)換到另一個(gè)具體類第二十二頁,共五十七頁,編輯于2023年,星期三調(diào)用的可插入性對(duì)象調(diào)用其他對(duì)象的方法。針對(duì)接口的調(diào)用:不是針對(duì)具體類,而是一個(gè)接口。任何實(shí)現(xiàn)這個(gè)接口的類都可以被當(dāng)前對(duì)象調(diào)用??梢詣?dòng)態(tài)地決定當(dāng)前對(duì)象調(diào)用哪一個(gè)具體類的實(shí)例接口提供了方法調(diào)用上的可插入性。第二十三頁,共五十七頁,編輯于2023年,星期三軟件系統(tǒng)的規(guī)模越大,生命周期越長,接口的重要性就越大。接口使得軟件系統(tǒng)在靈活性和可擴(kuò)展性,可插入性得到保證。第二十四頁,共五十七頁,編輯于2023年,星期三相同接口具有不同的實(shí)現(xiàn),對(duì)象的行為具有多種形態(tài)的特性。簡化了客戶定義。使客戶對(duì)象除了支持特定接口外,不做其他設(shè)定。相同接口的對(duì)象具有了可替換性。復(fù)用對(duì)象的實(shí)現(xiàn)和應(yīng)用第二十五頁,共五十七頁,編輯于2023年,星期三繼承和對(duì)象合成的關(guān)系繼承:根據(jù)一個(gè)類定義另一個(gè)類的執(zhí)行過程。在編譯時(shí)靜態(tài)定義,直接被程序設(shè)計(jì)語言支持,使用直接。便于修改正在復(fù)用的實(shí)現(xiàn)。
————白盒復(fù)用“白盒”指可見性,通過繼承,父類的內(nèi)部可被子類所見。第二十六頁,共五十七頁,編輯于2023年,星期三問題:1)實(shí)際運(yùn)行時(shí)不能改變?cè)诰幾g時(shí)所定義繼承的執(zhí)行過程2)子類的依賴性:繼承把父類執(zhí)行過程的細(xì)節(jié)暴露給子類,破壞了封裝。子類的物理表示、執(zhí)行過程與父類有密切關(guān)系父類執(zhí)行過程的任何改變都會(huì)強(qiáng)迫子類發(fā)生改變。這種依賴性限制了適應(yīng)性,最終也限制了可復(fù)用性。第二十七頁,共五十七頁,編輯于2023年,星期三動(dòng)態(tài)連接:在運(yùn)行時(shí)將請(qǐng)求連接到一個(gè)對(duì)象和該對(duì)象的一個(gè)操作上。——意味著請(qǐng)求不需指定特定的實(shí)現(xiàn)。任何有適當(dāng)接口的對(duì)象都會(huì)接收請(qǐng)求。相同接口的對(duì)象可以互相替換。第二十八頁,共五十七頁,編輯于2023年,星期三對(duì)象合成:通過組合對(duì)象得到新的更復(fù)雜的功能。要求被組合對(duì)象有定義好的接口。特點(diǎn):對(duì)象合成在運(yùn)行時(shí)動(dòng)態(tài)地通過對(duì)象請(qǐng)求訪問其他對(duì)象。組合要求對(duì)象考慮相互的接口,精心設(shè)計(jì)接口。任何一個(gè)對(duì)象都可在運(yùn)行時(shí)被另一個(gè)有相同的類型對(duì)象替代。黑盒復(fù)用————對(duì)象的內(nèi)部細(xì)節(jié)不可見,對(duì)象顯得像一個(gè)黑盒。
第二十九頁,共五十七頁,編輯于2023年,星期三優(yōu)點(diǎn):對(duì)象只能由其接口訪問,不破壞封裝。對(duì)象的實(shí)現(xiàn)根據(jù)接口編寫,依賴性減少。有助于類的封裝,使每個(gè)類集中于一個(gè)任務(wù)。 缺點(diǎn):系統(tǒng)的行為不是在類中定義,而依賴于對(duì)象的相互關(guān)系。采用對(duì)象合成優(yōu)于采用類繼承(合成/聚合復(fù)用原則)。第三十頁,共五十七頁,編輯于2023年,星期三委托(delegation):對(duì)象合成的特例。一個(gè)控制請(qǐng)求的執(zhí)行:繼承方法:子類將請(qǐng)求交給父類執(zhí)行。委托方法:接收操作的對(duì)象把操作委托給它的代理對(duì)象。接收操作的對(duì)象把自己本身也傳給委托者,以使被委托操作指向接收對(duì)象。第三十一頁,共五十七頁,編輯于2023年,星期三[例]窗口類的實(shí)現(xiàn)繼承方法:使窗口類成為矩形的子類,繼承其操作。窗口類將請(qǐng)求交給矩形父類執(zhí)行代理方法:產(chǎn)生一個(gè)矩形實(shí)例,并代理復(fù)用矩形的行為窗口將請(qǐng)求傳給此矩形實(shí)例把操作委托給矩形實(shí)例把自己本身也傳給矩形實(shí)例,以使被委托操作指向接收對(duì)象讓窗口好像是一個(gè)矩形在運(yùn)行中用圓實(shí)例代替矩形實(shí)例就適用圓形窗口窗口矩形窗口矩形第三十二頁,共五十七頁,編輯于2023年,星期三窗口類對(duì)矩型類實(shí)例的引用第三十三頁,共五十七頁,編輯于2023年,星期三優(yōu)點(diǎn):容易組合運(yùn)行時(shí)的行為,改變行為組合的方式。缺點(diǎn):難理解、運(yùn)行效率低。依賴具體情況及設(shè)計(jì)者經(jīng)驗(yàn)。在標(biāo)準(zhǔn)模式中使用效果較好。第三十四頁,共五十七頁,編輯于2023年,星期三參數(shù)化類型。定義類時(shí)不規(guī)定它所用的數(shù)據(jù)元素類型。這些類型在使用時(shí)作為參數(shù)提供。[例]:列表類——將元素的類型提供給列表的類型參數(shù),實(shí)現(xiàn)時(shí)為列表類建立每種元素的可定制形式。整數(shù)列表——把類型“整數(shù)”作為參數(shù)。字符串列表——類型“字符串”作為參數(shù)。第三十五頁,共五十七頁,編輯于2023年,星期三設(shè)計(jì)模式:更高的層次上的可復(fù)用性(宏觀邏輯的抽象層次復(fù)用)解決:1.合適的對(duì)象(類)的尋找2.對(duì)象(類)粒度的確定:如何分解粒度合適的類3.對(duì)象(類)接口的確定:如何定義類接口和繼承體系4.對(duì)象(類)實(shí)現(xiàn)的確定5.復(fù)用機(jī)制的處理:如何建立類(類)的關(guān)鍵聯(lián)系6.運(yùn)行結(jié)構(gòu)和編譯結(jié)構(gòu)的處理7.設(shè)計(jì)中變動(dòng)的處理第三十六頁,共五十七頁,編輯于2023年,星期三1.尋找合適的對(duì)象系統(tǒng)分解為對(duì)象的困難:多種矛盾因素兼顧:封裝、粒度、依賴性、靈活性、性能、發(fā)展、可重用性。多種分解對(duì)象方法優(yōu)劣的確定:(1)問題陳述→找出名詞和動(dòng)詞→構(gòu)造相應(yīng)的對(duì)象和操作;(2)集中考慮系統(tǒng)中的協(xié)作和職責(zé);(3)構(gòu)造現(xiàn)實(shí)世界模型,把分析得到的對(duì)象轉(zhuǎn)換到設(shè)計(jì)中?,F(xiàn)實(shí)世界+非現(xiàn)實(shí)世界的類,如數(shù)組、抽象類等。解決辦法:用設(shè)計(jì)模式幫助確定設(shè)計(jì)抽象和相應(yīng)的對(duì)象。第三十七頁,共五十七頁,編輯于2023年,星期三2.確定對(duì)象的粒度設(shè)計(jì)模式幫助確定在存在大小和數(shù)量差別的事物第三十八頁,共五十七頁,編輯于2023年,星期三3.確定對(duì)象的接口設(shè)計(jì)模式幫助確定:(1)接口定義。識(shí)別關(guān)鍵元素和由接口取得的數(shù)據(jù)的類型。(2)規(guī)定接口間的關(guān)系和接口限制。第三十九頁,共五十七頁,編輯于2023年,星期三4.確定對(duì)象實(shí)現(xiàn)對(duì)象的實(shí)現(xiàn)由它的類來定義。a.類的表示抽象類/具體類/混合類b.類的實(shí)現(xiàn)類繼承/接口繼承第四十頁,共五十七頁,編輯于2023年,星期三5.處理復(fù)用機(jī)制理想情況下,應(yīng)該只通過對(duì)象合成來得到所需的功能。但限于可用部件的集合不夠豐富。繼承和對(duì)象合成可以互相補(bǔ)充。第四十一頁,共五十七頁,編輯于2023年,星期三一個(gè)設(shè)計(jì)可以用三種組合行為技術(shù)中的任一種來實(shí)現(xiàn)。區(qū)別:繼承——允許提供操作的缺省實(shí)現(xiàn)并允許子類超越父類操作。對(duì)象合成——允許運(yùn)行時(shí)改變被組合的行為,但間接完成,效率不高。參數(shù)化類型——允許改變一個(gè)類可用的類型。但不能在運(yùn)行中改變。哪種方法最好取決于設(shè)計(jì)和實(shí)現(xiàn)約束。第四十二頁,共五十七頁,編輯于2023年,星期三6.運(yùn)行結(jié)構(gòu)和編譯結(jié)構(gòu)編譯結(jié)構(gòu)(代碼結(jié)構(gòu))——編譯時(shí)即被凍結(jié),由具有固定繼承關(guān)系的類組成。編譯結(jié)構(gòu)代碼不能顯示出一個(gè)系統(tǒng)工作的全部情況。運(yùn)行結(jié)構(gòu)——由迅速變化的通信對(duì)象網(wǎng)組成。系統(tǒng)運(yùn)行結(jié)構(gòu)的優(yōu)劣主要由設(shè)計(jì)者設(shè)計(jì)的對(duì)象及其類型之間的關(guān)系來決定,而不是由語言來決定的。第四十三頁,共五十七頁,編輯于2023年,星期三[例]:運(yùn)行結(jié)構(gòu)和編譯結(jié)構(gòu)不同聚集(aggregation)和關(guān)聯(lián)(acquaintance)關(guān)系。聚集——對(duì)象包含另一個(gè)對(duì)象或?qū)α硪粚?duì)象負(fù)責(zé),或?yàn)榱硪粋€(gè)對(duì)象的一部分,具有相同生命期。關(guān)聯(lián)——一個(gè)對(duì)象只知道另一個(gè)對(duì)象。關(guān)聯(lián)對(duì)象之間可互相請(qǐng)求操作,但不對(duì)對(duì)方負(fù)責(zé)。是比聚集弱的聯(lián)系,提供了對(duì)象間的松耦合?!\(yùn)行結(jié)構(gòu)不同
聚集和關(guān)聯(lián)常用相同的方法編譯實(shí)現(xiàn):在Smalltalk中:都是其他對(duì)象的引用。聚集和關(guān)聯(lián)沒有區(qū)別。在C++中:都用指針和引用來實(shí)現(xiàn)。
——編譯結(jié)構(gòu)相同由此可見:關(guān)聯(lián)和聚集關(guān)系主要由設(shè)計(jì)含義決定,而不是由語言機(jī)制決定。在編譯結(jié)構(gòu)中,關(guān)聯(lián)和聚集之間的差別小,在源代碼中難以辨認(rèn)。差別:聚集關(guān)系往往會(huì)比關(guān)聯(lián)關(guān)系少而更穩(wěn)定。關(guān)聯(lián)關(guān)系出現(xiàn)頻繁,有時(shí)只在一個(gè)操作持續(xù)的時(shí)間中存在。動(dòng)態(tài)性更強(qiáng)。第四十四頁,共五十七頁,編輯于2023年,星期三7.處理設(shè)計(jì)中的變動(dòng)達(dá)到最大復(fù)用程度的關(guān)鍵:設(shè)計(jì)中預(yù)先考慮生命期內(nèi)新需求和現(xiàn)有需求的變化。包括:類的重定義和重新實(shí)現(xiàn)、客戶修改和重新測試。設(shè)計(jì)模式的作用:確保系統(tǒng)只用特定的方式發(fā)生改變。允許系統(tǒng)結(jié)構(gòu)的某些部分的變化獨(dú)立于另外部分,因此有較高的健壯性。封裝變化第四十五頁,共五十七頁,編輯于2023年,星期三應(yīng)用系統(tǒng)、工具包、框架設(shè)計(jì)難度:應(yīng)用系統(tǒng)<工具包<框架第四十六頁,共五十七頁,編輯于2023年,星期三(1)設(shè)計(jì)模式在應(yīng)用系統(tǒng)中的作用:設(shè)計(jì)模式的松散耦合,封裝使操作、算法、和表示的依賴性減少,提高了對(duì)象類與其他類互操作的可能性——增加了內(nèi)部復(fù)用可能。減少對(duì)平臺(tái)依賴性——系統(tǒng)的可維護(hù)性變強(qiáng)。利用類繼承關(guān)系和對(duì)象合成,使類耦合減少,一個(gè)類不依賴于其他類——提高可擴(kuò)展性。第四十七頁,共五十七頁,編輯于2023年,星期三(2)設(shè)計(jì)模式在工具包中的作用:工具包——類庫中預(yù)先定義的相關(guān)的可復(fù)用的類的集合,面向?qū)ο蟮淖映绦驇?。——只為?yīng)用系統(tǒng)提供某些通用功能。如列表、聯(lián)合表、棧等,C++的I/O流庫等?!獜?qiáng)調(diào)代碼復(fù)用,沒有特定的設(shè)計(jì)要求。第四十八頁,共五十七頁,編輯于2023年,星期三設(shè)計(jì)特點(diǎn):比應(yīng)用系統(tǒng)的設(shè)計(jì)難。要在多種應(yīng)用系統(tǒng)中工作。設(shè)計(jì)者不知應(yīng)用系統(tǒng)情況和特殊要求。要求:避免假設(shè)和依賴性,依賴性會(huì)限制工具包的適應(yīng)性,進(jìn)而限制可利用性和效率。設(shè)計(jì)模式有助于工具包的適用性。
第四十九頁,共五十七頁,編輯于2023年,星期三(3)設(shè)計(jì)模式在框架中的作用:框架——為特定要求的軟件構(gòu)成的可復(fù)用的設(shè)計(jì)??蚣軓?qiáng)調(diào)設(shè)計(jì)復(fù)用而不僅是代碼復(fù)用。特定應(yīng)用的框架是框架抽象類的特定應(yīng)用子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國有企業(yè)員工績效評(píng)估及激勵(lì)合同
- 2025年度環(huán)保項(xiàng)目評(píng)估外聘專家合作協(xié)議
- 二零二五年度日租房短租與藝術(shù)展覽合作協(xié)議
- 二零二五年度家長參與校園安全責(zé)任協(xié)議書反饋流程
- 環(huán)保能源行業(yè)項(xiàng)目投資風(fēng)險(xiǎn)免責(zé)
- 農(nóng)業(yè)行業(yè)精準(zhǔn)農(nóng)業(yè)技術(shù)支持平臺(tái)搭建方案
- 幼兒園繪本故事集征文
- 電商平臺(tái)商戶退換貨規(guī)則協(xié)議
- 高考語文大一輪總復(fù)習(xí) 文言文閱讀 文言實(shí)詞題題組訓(xùn)練試題
- 高考語文備考文言文閱讀專項(xiàng)練習(xí)之文言文斷句
- 500格作文紙-(20x25)文檔
- 九年級(jí)中考物理-安培定則(右手螺旋定則)復(fù)習(xí)題匯總及解析
- 錨固溝施工方案
- 廣西太陽能資源分析
- Internet網(wǎng)絡(luò)技術(shù)與應(yīng)用課件
- 華東師大版九年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)課時(shí)練習(xí)(一課一練)
- “課程思政”融入專業(yè)課教學(xué)的探索課程思政與專業(yè)課結(jié)合
- 工程結(jié)算審核服務(wù)方案技術(shù)標(biāo)
- 動(dòng)物水、電解質(zhì)代謝及酸堿平衡紊亂-脫水(動(dòng)物病理學(xué)課件)
- 太喜歡體態(tài)訓(xùn)練了
- 裝修客戶需求表
評(píng)論
0/150
提交評(píng)論