99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題

本文小編為大家詳細(xì)介紹“使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

創(chuàng)新互聯(lián)建站專注于洪江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供洪江營(yíng)銷型網(wǎng)站建設(shè),洪江網(wǎng)站制作、洪江網(wǎng)頁(yè)設(shè)計(jì)、洪江網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造洪江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供洪江網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

實(shí)現(xiàn)

盡管Adapter模式的實(shí)現(xiàn)方式通常簡(jiǎn)單直接,但是仍需要注意以下一些問(wèn)題:
1) 使用C++實(shí)現(xiàn)適配器類 在使用C++實(shí)現(xiàn)適配器類時(shí),Adapter類應(yīng)該采用公共方式繼承Target類,并且用私有方式繼承Adaptee類。因此,Adapter類應(yīng)該是Target的子類型,但不是Adaptee的子類型。

使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題

這就是適配器模式開(kāi)頭的例子。新系統(tǒng)希望使用既有系統(tǒng)的功能,因此對(duì)既有系統(tǒng)進(jìn)行適配,使之可以在新系統(tǒng)中使用。


2) 可插入的適配器 有許多方法可以實(shí)現(xiàn)可插入的適配器。例如,前面描述的TreeDisplay窗口組件可以自動(dòng)的布置和顯示層次式結(jié)構(gòu),對(duì)于它有三種實(shí)現(xiàn)方法:

第三種方法是Smalltalk,所以這里是說(shuō)明前兩種方法。


首先(這也是所有這三種實(shí)現(xiàn)都要做的)是為Adaptee找到一個(gè)“窄”接口,即可用于適配的最小操作集。因?yàn)榘^少操作的窄接口相對(duì)包含較多操作的寬接口比較容易進(jìn)行匹配。

這里所說(shuō)的窄接口指的就是只提供某一方面功能的接口。


對(duì)于TreeDisplay而言,被匹配的對(duì)象可以是任何一個(gè)層次式結(jié)構(gòu)。因此最小接口集合僅包含兩個(gè)操作:一個(gè)操作定義如何在層次結(jié)構(gòu)中表示一個(gè)節(jié)點(diǎn),另一個(gè)操作返回該節(jié)點(diǎn)的子節(jié)點(diǎn)。

這是將一個(gè)數(shù)據(jù)結(jié)構(gòu)在TreeView中表達(dá)的最低要求,一個(gè)用于取得下級(jí)節(jié)點(diǎn),一個(gè)用于生成當(dāng)前節(jié)點(diǎn)。

對(duì)這個(gè)窄接口,有以下三個(gè)實(shí)現(xiàn)途徑:
a) 使用抽象操作

在TreeDisplay類中定義窄Adaptee接口相應(yīng)的抽象操作。這樣就由子類來(lái)實(shí)現(xiàn)這些抽象操作并匹配具體的樹(shù)結(jié)構(gòu)的對(duì)象。例如,DirectoryTreeDisplay子類將通過(guò)訪問(wèn)目錄結(jié)構(gòu)實(shí)現(xiàn)這些操作,如下圖所示。

這種情況屬于類適配器。

使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題

DirectoryTreeDisplay對(duì)這個(gè)窄接口加以特化,使得它的DirectoryBrowser客戶可以用它來(lái)顯示目錄結(jié)構(gòu)。

TreeDisplay提供基本的樹(shù)結(jié)構(gòu)表示功能,但是不知道從哪里取得下級(jí)節(jié)點(diǎn),也不知道如何根據(jù)構(gòu)建當(dāng)前節(jié)點(diǎn)。這兩個(gè)功能交給了解文件系統(tǒng)功能的DirecotryTreeDisplay來(lái)實(shí)現(xiàn)。


b) 使用代理對(duì)象

在這種方法中,TreeDisplay將訪問(wèn)樹(shù)結(jié)構(gòu)的請(qǐng)求轉(zhuǎn)發(fā)到代理對(duì)象。
TreeDisplay的客戶進(jìn)行一些選擇,并將這些選擇提供給代理對(duì)象,這樣客戶就可以對(duì)適配加以控制,如下圖所示。

這種情況屬于對(duì)象適配器。

使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題

例如,有一個(gè)DirectoryBrowser,它像前面一樣使用TreeDisplay。DirectoryBrowser可能為匹配TreeDisplay和層次目錄結(jié)構(gòu)構(gòu)造出一個(gè)較好的代理。
在C++這樣的靜態(tài)類型語(yǔ)言中,需要一個(gè)代理的顯式接口定義。我們將 TreeDisplay需要的窄接口放入純虛類TreeAccessorDelegate中,從而指定這樣的一個(gè)接口。然后我們可以運(yùn)用繼承機(jī)制將這個(gè)接口融合到我們所選擇的代理中— 這里我們選擇DirectoryBrowser。如果DirectoryBrowser沒(méi)有父類我們將采用單繼承,否則采用多繼承。這種將類融合在一起的方法相對(duì)于引入一個(gè)新的TreeDisplay子類并單獨(dú)實(shí)現(xiàn)它的操作的方法要容易一些。

相對(duì)于第一種方式,TreeDisplay管理一個(gè)適配器對(duì)象,這個(gè)適配器定義需要實(shí)現(xiàn)的窄接口。使用者繼承這個(gè)適配器類,并且將希望表示的數(shù)據(jù)結(jié)構(gòu)的接口適配到這個(gè)接口上來(lái)。

讀到這里,這篇“使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站標(biāo)題:使用C++實(shí)現(xiàn)適配器類要注意什么問(wèn)題
轉(zhuǎn)載注明:http://www.yijiale78.com/article24/ghdice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站Google網(wǎng)站改版ChatGPT網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司