一. 適配器模式
配器模式(Adapter Pattern)是作為兩個(gè)不兼容的接口之間的橋梁。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它結(jié)合了兩個(gè)獨(dú)立接口的功能。這個(gè)模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
實(shí)現(xiàn)方式是,適配器繼承或依賴已有的對象,實(shí)現(xiàn)想要的目標(biāo)接口。
需要注意的是: 適配器不是在詳細(xì)設(shè)計(jì)時(shí)添加的,而是解決正在服役的項(xiàng)目的問題。
二. 橋接模式
橋接(Bridge)是用于把抽象化與實(shí)現(xiàn)化解耦,使得二者可以獨(dú)立變化。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實(shí)現(xiàn)化之間的橋接結(jié)構(gòu),來實(shí)現(xiàn)二者的解耦。
橋接模式將繼承關(guān)系轉(zhuǎn)換為關(guān)聯(lián)關(guān)系,并且這種關(guān)聯(lián)關(guān)系是建立在抽象層,從而降低了類與類之間的耦合,減少了代碼編寫量。
例子:畫圖,這里有一個(gè)畫筆,可以畫正方形、長方形、圓形(這個(gè)大家都知道怎么做吧,我就不解釋了)。但是現(xiàn)在我們需要給這些形狀進(jìn)行上色,這里有三種顏色:白色、灰色、黑色。這里我們可以畫出3*3=9中圖形:白色正方形、白色長方形、白色圓形……,到這里了我們幾乎到知道了這里存在兩種解決方案:方案一:為每種形狀都提供各種顏色的版本。方案二:根據(jù)實(shí)際需要對顏色和形狀進(jìn)行組合。
使用場景:1、如果一個(gè)系統(tǒng)需要在構(gòu)件的抽象化角色和具體化角色兩者之間增加更多的靈活性,避免在兩個(gè)層次之間建立靜態(tài)的繼承聯(lián)系,通過橋接模式可以使它們在抽象層建立一個(gè)關(guān)聯(lián)關(guān)系。2、對于那些不希望使用繼承或因?yàn)槎鄬哟卫^承導(dǎo)致系統(tǒng)類的個(gè)數(shù)急劇增加的系統(tǒng),橋接模式尤為適用。3、一個(gè)類存在兩個(gè)獨(dú)立變化的維度,且這兩個(gè)維度都需要進(jìn)行擴(kuò)展。
三.過濾器模式
過濾器模式(Filter Pattern)或標(biāo)準(zhǔn)模式(Criteria Pattern)是一種設(shè)計(jì)模式,這種模式允許開發(fā)人員使用不同的標(biāo)準(zhǔn)來過濾一組對象,通過邏輯運(yùn)算以解耦的方式把它們連接起來。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它結(jié)合多個(gè)標(biāo)準(zhǔn)來獲得單一標(biāo)準(zhǔn)。
不過這樣也算一種模式???
四. 組合模式
組合模式實(shí)現(xiàn)的最關(guān)鍵的地方是——簡單對象和復(fù)合對象必須實(shí)現(xiàn)相同的接口。這就是組合模式能夠?qū)⒔M合對象和簡單對象進(jìn)行一致處理的原因。將對象組合成樹形結(jié)構(gòu)以表示"部分-整體"的層次結(jié)構(gòu)。組合模式使得用戶對單個(gè)對象和組合對象的使用具有一致性。
例子:手游引擎里面的各個(gè)組件可以相互組合,形成樹狀結(jié)構(gòu)。
五. 裝飾器模式
這種模式創(chuàng)建了一個(gè)裝飾類,用來包裝原有的類,并在保持類方法簽名完整性的前提下,提供了額外的功能。
在這個(gè)模式中,裝飾者和被裝飾者會繼承同一個(gè)基類,實(shí)現(xiàn)同一個(gè)接口。裝飾者會依賴于被裝飾者,然后裝飾者之間也會相互依賴。在裝飾的時(shí)候,裝飾者會先調(diào)用前一個(gè)裝飾者的裝飾方法,再開始加上自己的裝飾功能。
在我上一個(gè)手游項(xiàng)目中,我曾經(jīng)用這個(gè)模式實(shí)現(xiàn)過一個(gè)彈提示框的功能,通過將提示框分為幾個(gè)部分,每個(gè)部分都是一個(gè)裝飾者,當(dāng)我用代碼實(shí)現(xiàn)了每個(gè)部分之后,再建立一個(gè)數(shù)字到每個(gè)類名的映射,策劃就可以自己根據(jù)需要,配置自己需要的部分。
六. 外觀模式
外觀模式(Facade Pattern)隱藏系統(tǒng)的復(fù)雜性,并向客戶端提供了一個(gè)客戶端可以訪問系統(tǒng)的接口。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它向現(xiàn)有的系統(tǒng)添加一個(gè)接口,來隱藏系統(tǒng)的復(fù)雜性。
這個(gè)沒什么好說的,就是puremvc中的facade,就是向外為一個(gè)系統(tǒng)或者幾個(gè)系統(tǒng)提供一些對外的接口。外界只與facade進(jìn)行交互。
七. 享元模式
享元模式(Flyweight Pattern)主要用于減少創(chuàng)建對象的數(shù)量,以減少內(nèi)存占用和提高性能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它提供了減少對象數(shù)量從而改善應(yīng)用所需的對象結(jié)構(gòu)的方式。
就是對象池的技術(shù)。
八. 代理模式
代理模式主要解決,在直接訪問對象時(shí)帶來的問題,比如說:要訪問的對象在遠(yuǎn)程的機(jī)器上。在面向?qū)ο笙到y(tǒng)中,有些對象由于某些原因(比如對象創(chuàng)建開銷很大,或者某些操作需要安全控制,或者需要進(jìn)程外的訪問),直接訪問會給使用者或者系統(tǒng)結(jié)構(gòu)帶來很多麻煩,我們可以在訪問此對象時(shí)加上一個(gè)對此對象的訪問層。
和其他模式的區(qū)別: 1、和適配器模式的區(qū)別:適配器模式主要改變所考慮對象的接口,而代理模式不能改變所代理類的接口。 2、和裝飾器模式的區(qū)別:裝飾器模式為了增強(qiáng)功能,而代理模式是為了加以控制。
完。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前文章:設(shè)計(jì)模式-結(jié)構(gòu)型-創(chuàng)新互聯(lián)
URL鏈接:http://jinyejixie.com/article18/pshgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站建設(shè)、建站公司、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容