當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]代理模式 組成: 抽象角色:通過接口或抽象類聲明真實(shí)角色實(shí)現(xiàn)的業(yè)務(wù)方法。 代理角色:實(shí)現(xiàn)抽象角色,是真實(shí)角色的代理,通過真實(shí)角色的業(yè)務(wù)邏輯方法來實(shí)現(xiàn)抽象方法,并

代理模式

組成:

抽象角色:通過接口或抽象類聲明真實(shí)角色實(shí)現(xiàn)的業(yè)務(wù)方法。

代理角色:實(shí)現(xiàn)抽象角色,是真實(shí)角色的代理,通過真實(shí)角色的業(yè)務(wù)邏輯方法來實(shí)現(xiàn)抽象方法,并可以附加自己的操作。

真實(shí)角色:實(shí)現(xiàn)抽象角色,定義真實(shí)角色所要實(shí)現(xiàn)的業(yè)務(wù)邏輯,供代理角色調(diào)用。

即Proxy Pattern,23種常用的面向?qū)ο筌浖脑O(shè)計(jì)模式之一。(設(shè)計(jì)模式的說法源自《設(shè)計(jì)模式》一書,原名《Design Patterns: Elements of Reusable Object-Oriented Software》。1995年出版,出版社:Addison Wesly Longman.Inc。該書提出了23種基本設(shè)計(jì)模式,第一次將設(shè)計(jì)模式提升到理論高度,并將之規(guī)范化。)

代理模式的定義:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。在某些情況下,一個(gè)對(duì)象不適合或者不能直接引用另一個(gè)對(duì)象,而代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用。

(1)職責(zé)清晰

真實(shí)的角色就是實(shí)現(xiàn)實(shí)際的業(yè)務(wù)邏輯,不用關(guān)心其他非本職責(zé)的事務(wù),通過后期的代理完成一件完成事務(wù),附帶的結(jié)果就是編程簡(jiǎn)潔清晰。

(2)代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用,這樣起到了中介的作用和保護(hù)了目標(biāo)對(duì)象的作用。

(3)高擴(kuò)展性

適配器模式

在計(jì)算機(jī)編程中,適配器模式(有時(shí)候也稱包裝樣式或者包裝)將一個(gè)類的接口適配成用戶所期待的。一個(gè)適配允許通常因?yàn)榻涌诓患嫒荻荒茉谝黄鸸ぷ鞯念惞ぷ髟谝黄?,做法是將類自己的接口包裹在一個(gè)已存在的類中。

共有兩類適配器模式:

對(duì)象適配器模式

-- 在這種適配器模式中,適配器容納一個(gè)它包裹的類的實(shí)例。在這種情況下,適配器調(diào)用被包裹對(duì)象的物理實(shí)體。

類適配器模式

-- 這種適配器模式下,適配器繼承自已實(shí)現(xiàn)的類(一般多重繼承)。

使用的前提:

1.接口中規(guī)定了所有要實(shí)現(xiàn)的方法

2.但一個(gè)要實(shí)現(xiàn)此接口的具體類,只用到了其中的幾個(gè)方法,而其它的方法都是沒有用的。

實(shí)現(xiàn)方法

1.用一個(gè)抽象類實(shí)現(xiàn)已有的接口,并實(shí)現(xiàn)接口中所規(guī)定的所有方法,這些方法的實(shí)現(xiàn)可以都是“平庸”實(shí)現(xiàn)----空方法;但此類中的方法是具體的方法,而不是抽象方法,否則的話,在具體的子類中仍要實(shí)現(xiàn)所有的方法,這就失去了適配器本來的作用。

2.原本要實(shí)現(xiàn)接口的子類,只實(shí)現(xiàn)1中的抽象類即可,并在其內(nèi)部實(shí)現(xiàn)時(shí),只對(duì)其感興趣的方法進(jìn)行實(shí)現(xiàn)。

注意事項(xiàng)

1.充當(dāng)適配器角色的類就是:實(shí)現(xiàn)已有接口的抽象類

2.為什么要用抽象類:

此類是不要被實(shí)例化的。而只充當(dāng)適配器的角色,也就為其子類提供了一個(gè)共同的接口,但其子類又可以將精力只集中在其感興趣的地方。

 模式解析

你想使用一個(gè)已經(jīng)存在的適配器模式,而他的接口不符合你的需求。你想創(chuàng)建一個(gè)可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類協(xié)同工作。你想使用一些已經(jīng)存在的子類,但是不可能對(duì)每一個(gè)都進(jìn)行子類化已一匹配他們的接口,對(duì)象適配器可以適配他的父類接口。 適配器如同一個(gè)常見的變壓器,也如同電腦的變壓器和插線板之間的電源連接線,他們雖然都是3相的,但是電腦后面的插孔卻不能直接插到插線板上。

 一簡(jiǎn)介

適配器模式:適配器模式(英語(yǔ):adapter pattern)有時(shí)候也稱包裝樣式或者包裝。將一個(gè)類的接口轉(zhuǎn)接成用戶所期待的。一個(gè)適配使得因接口不兼容而不能在一起工作的類工作在一起,做法是將類別自己的接口包裹在一個(gè)已存在的類中。

代理模式:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。在某些情況下,一個(gè)對(duì)象不適合或者不能直接引用另一個(gè)對(duì)象,而代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用。

二困惑

設(shè)計(jì)模式總是通過增加層來進(jìn)行解耦合,提高擴(kuò)展性,但是如果我們沒法從在這個(gè)抽象維度中看出,這個(gè)層真正的抽象含義,那么我們很難搞懂一個(gè)模式真正的內(nèi)涵?我就有這個(gè)疑問,這兩個(gè)東東都是增加了一層,但是這一層有什么區(qū)別?

三理解

很明顯,適配器模式是因?yàn)樾屡f接口不一致導(dǎo)致出現(xiàn)了客戶端無法得到滿足的問題,但是,由于舊的接口是不能被完全重構(gòu)掉的,因?yàn)槲覀冞€想使用實(shí)現(xiàn)了這個(gè)接口的一些服務(wù)。那么為了使用以前實(shí)現(xiàn)舊接口的服務(wù),我們就應(yīng)該把新的接口轉(zhuǎn)換成舊接口;實(shí)現(xiàn)這個(gè)轉(zhuǎn)換的類就是抽象意義的轉(zhuǎn)換器。

就比如在java中早期的枚舉接口是Enumeraon而后定義的枚舉接口是Iterator;有很多舊的類實(shí)現(xiàn)了enumeraon接口暴露出了一些服務(wù),但是這些服務(wù)我們現(xiàn)在想通過傳入Iterator接口而不是Enumeraon接口來調(diào)用,這時(shí)就需要一個(gè)適配器,那么client就能用這個(gè)服務(wù)了(服務(wù)端只想用Iterator或者只知道這個(gè)接口)。

相比于適配器的應(yīng)用場(chǎng)景,代理就不一樣了,雖然代理也同樣是增加了一層,但是,代理提供的接口和原本的接口是一樣的,代理模式的作用是不把實(shí)現(xiàn)直接暴露給client,而是通過代理這個(gè)層,代理能夠做一些處理。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉