内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

使用C++實現適配器類要注意什么問題

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

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

實現

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

使用C++實現適配器類要注意什么問題

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


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

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


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

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


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

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

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

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

這種情況屬于類適配器。

使用C++實現適配器類要注意什么問題

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

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


b) 使用代理對象

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

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

使用C++實現適配器類要注意什么問題

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

相對于第一種方式,TreeDisplay管理一個適配器對象,這個適配器定義需要實現的窄接口。使用者繼承這個適配器類,并且將希望表示的數據結構的接口適配到這個接口上來。

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

網站標題:使用C++實現適配器類要注意什么問題
轉載注明:http://www.rwnh.cn/article24/ghdice.html

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

廣告

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

網站建設網站維護公司
北辰区| 仪征市| 漳浦县| 达尔| 蒙城县| 新津县| 文成县| 鹿泉市| 东阿县| 凤庆县| 沽源县| 伊宁县| 会同县| 子长县| 临城县| 旅游| 桂平市| 商都县| 历史| 松桃| 特克斯县| 富锦市| 洞口县| 独山县| 兴国县| 改则县| 平武县| 闻喜县| 邯郸县| 丁青县| 高平市| 龙山县| 牙克石市| 新疆| 从江县| 湖北省| 扎赉特旗| 龙南县| 沭阳县| 保康县| 衡南县|