久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

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

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

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

實現(xiàn)

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

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

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


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

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


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

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


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

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

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

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

這種情況屬于類適配器。

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

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

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


b) 使用代理對象

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

這種情況屬于對象適配器。

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

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

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

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

網(wǎng)站標題:使用C++實現(xiàn)適配器類要注意什么問題
轉(zhuǎn)載注明:http://sd-ha.com/article24/ghdice.html

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

廣告

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

網(wǎng)站建設網(wǎng)站維護公司