freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第八講設(shè)計模式-資料下載頁

2024-09-28 13:25本頁面

【導(dǎo)讀】設(shè)計模式是一些面向?qū)ο蟮能浖_發(fā)經(jīng)驗總結(jié)。解釋和評價,是某個重要的可重現(xiàn)的面向?qū)ο蟮脑O(shè)計方案。設(shè)計模式是解決一類相關(guān)問題的通用技術(shù)。模式分類和名稱:名稱及一個簡短摘要。的使用具有一致性。將不同對象對請求的處理形成一個鏈,使它們都有機(jī)會檢查請求,從而達(dá)到維持對象松散耦合的作用。狀態(tài)使對象在其內(nèi)部狀態(tài)發(fā)生變化時發(fā)生類似類行為的改變。又發(fā)布了數(shù)百種模式。該模式也稱為簡單工廠或具體工廠。關(guān)注分離或模塊化為不同領(lǐng)域,以確保內(nèi)聚。常用的替代方案是使用工廠模式,其中定義純虛構(gòu)的。“工廠”對象來創(chuàng)建對象。

  

【正文】 終需要的東西,其內(nèi)部一定充滿了應(yīng)用系統(tǒng)的商業(yè)邏輯 。 59 在什么情形下 使用 抽象工廠 ? 一個系統(tǒng)不應(yīng)當(dāng)依賴于產(chǎn)品類實例如何被創(chuàng)建、組合和表達(dá)的細(xì)節(jié),這對于所有形態(tài)的工廠模式都是重要的。 ? 這個系統(tǒng)有多于一個的產(chǎn)品族,而系統(tǒng)只消費(fèi)其中某一產(chǎn)品族。 ? 同屬于同一個產(chǎn)品族的產(chǎn)品是在一起使用的,這一約束必須在系統(tǒng)的設(shè)計中體現(xiàn)出來。 ? 系統(tǒng)提供一個產(chǎn)品類的庫,所有的產(chǎn)品以同樣的接口出現(xiàn),從而使客戶端不依賴于實現(xiàn)。 60 開放-封閉 原則 ? 開放-封閉 原則要求系統(tǒng) 對擴(kuò)展開放,對修改封閉 。通過擴(kuò)展達(dá)到增強(qiáng)其功能的目的。對于涉及到多個產(chǎn)品族與多個產(chǎn)品等級結(jié)構(gòu)的系統(tǒng),其功能增強(qiáng)包括兩方面: ? 增加產(chǎn)品族: Abstract Factory很好的支持了 開放-封閉 原則。 ? 增加新產(chǎn)品的等級結(jié)構(gòu):需要修改所有的工廠角色,沒有很好支持 開放-封閉 原則。 ? 綜合起來,抽象工廠模式以一種傾斜的方式支持增加新的產(chǎn)品,它為新產(chǎn)品族的增加提供方便,而不能為新的產(chǎn)品等級結(jié)構(gòu)的增加提供這樣的方便。 61 橋接 (Bridge) ? 從蠟筆與毛筆說起 ? 設(shè)想要繪制一幅圖畫,藍(lán)天、白云、綠樹、小鳥,如果畫面尺寸很大 ,總共 3種大寫 12種顏色,是用毛筆還是用蠟筆更方便呢? 62 ? 顯而易見用蠟筆需要 3*12=36只,而毛筆是 3+12=15,而且顏色越多用毛筆的優(yōu)勢越明顯 ? 這就是 Bridge模式 :將抽象化 (Abstraction)與實現(xiàn)化(Implementation)脫耦,使得二者可以獨(dú)立地變化 63 橋接 (Bridge) 橋接 模式三個關(guān)鍵詞 ? 抽象化: 存在于多個實體中的共同的概念性聯(lián)系,就是抽象化。作為一個過程,抽象化就是忽略一些信息,從而把不同的實體當(dāng)做同樣的實體對待。 ? 實現(xiàn)化: 抽象化給出的具體實現(xiàn),就是實現(xiàn)化。 ? 脫耦: 所謂耦合,就是兩個實體的行為的某種強(qiáng)關(guān)聯(lián)。而將它們的強(qiáng)關(guān)聯(lián)去掉,就是耦合的解脫,或稱脫耦。在這里,脫耦是指將抽象化和實現(xiàn)化之間的耦合解脫開,或者說是將它們之間的強(qiáng)關(guān)聯(lián)改換成弱關(guān)聯(lián)。將兩個角色之間的 繼承關(guān)系改為聚合關(guān)系 ,就是將它們之間的強(qiáng)關(guān)聯(lián)改換成為弱關(guān)聯(lián)。 64 橋接 模式的結(jié)構(gòu) 65 橋接 模式所涉及的角色 ? 抽象化 (Abstraction)角色:抽象化給出的定義,并保存一個對實現(xiàn)化對象的引用 。 ? 修正抽象化 (Refined Abstraction)角色:擴(kuò)展抽象化角色,改變和修正父類對抽象化的定義 。 ? 實現(xiàn)化 (Implementor)角色:這個角色給出實現(xiàn)化角色的接口,但不給出具體的實現(xiàn)。必須指出的是,這個接口不一定和抽象化角色的接口定義相同,實際上,這兩個接口可以非常不一樣。實現(xiàn)化角色應(yīng)當(dāng)只給出底層操作,而抽象化角色應(yīng)當(dāng)只給出基于底層操作的更高一層的操作。 ? 具體實現(xiàn)化 (Concrete Implementor)角色:這個角色給出實現(xiàn)化角色接口的具體實現(xiàn)。 66 在什么情況下 使用 橋接 模式 ? 如果一個系統(tǒng)需要在構(gòu)件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態(tài)的聯(lián)系。 ? 設(shè)計要求實現(xiàn)化角色的任何改變不應(yīng)當(dāng)影響客戶端,或者說實現(xiàn)化角色的改變對客戶端是完全透明的。 ? 一個構(gòu)件有多于一個的抽象化角色和實現(xiàn)化角色,系統(tǒng)需要它們之間進(jìn)行動態(tài)耦合。 ? 雖然在系統(tǒng)中使用繼承是沒有問題的,但是由于抽象化角色和具體化角色需要獨(dú)立變化,設(shè)計要求需要獨(dú)立管理這兩者。 ? 實例( ) 67 總結(jié) ? 設(shè)計模式建立在對系統(tǒng)變化點(diǎn)的基礎(chǔ)上進(jìn)行,哪里有變化點(diǎn),哪里應(yīng)用設(shè)計模式。 ? 設(shè)計模式應(yīng)該以演化的方式來獲得,系統(tǒng)的變化點(diǎn)往往是經(jīng)過不斷演化才能準(zhǔn)確定位。 ? 不能為了模式而模式,設(shè)計模式是一種軟件設(shè)計的軟力量,而非規(guī)范標(biāo)準(zhǔn)。不應(yīng)夸大設(shè)計模式的作用。 68 推薦書籍 ? 《 設(shè)計模式 》 Gamma、 Helm、 Johnson和 Vlissides ? 《 Head First 設(shè)計模式 》 ? 《 面向模式的軟件體系結(jié)構(gòu) 》 69 謝謝大家! 70
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1