麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 網絡通信 > 正文

適配器模式解析例子

2020-04-18 12:53:46
字體:
來源:轉載
供稿:網友
  本文深入淺出的講述了設計模式中的適配器模式,并給出了簡單的示例,例子淺顯易懂,并附帶源代碼。   適配器模式中的有以下的四種角色: 目標(target):定義客戶端使用的與特定領域相關的接口。被適配者(adaptee):定義了一個已經存在的接口,這個接口需要匹配。適配者(adapter):Adaptee的接口與target的接口進行適配。客戶端(Client):與符合target接口的對象協同。適配器模式的意圖是將一個類的接口轉換成客戶希望的另外的一個接口。Adapter 模式使得原來由于幾口不兼容而不能一起工作的雷可以一起工作。舉例來說:有一個類(adaptee)實現了數學中的冪次運算,方法中需要傳入兩個參數,一個是基數base,另外一個是冪次exp。現在客戶端需要一個求得一個數的平方的函數接口(target),傳入一個數,得到它的平方值。為了復用已經存在的類adaptee,適用Adapter來適配adaptee,adapter實現了target接口。使用UML圖表示以上的描述如下:



1適配器模式 客戶端調用target的接口方法,具體的實現(adapter)把需求適配給Adaptee,最終調用Adaptee的方法來實現客戶端的調用請求。目標接口定義如下所示;      package adapter;public interface Target{    public long get2Power(long exp);} Adaptee的接口定義如下所示:package adapter;public class Adaptee{    public long getPower(long base,long exp){       long result=1;       for(int i=0;i<exp;i++)           result*=base;       return result;    }}適配器(adapter)的接口定義如下所示:package adapter;public class Adapter implements Target{    private Adaptee pt;    public Adapter(){       pt = new Adaptee();    }    public long get2Power(long exp){       return pt.getPower(2,exp);    }}客戶端的定義如下:package adapter;public class Client{    public static void main(String[] args){       long exp=5;       Target t= new Adapter();       String str = " 2 power "+exp+"=";       str +=t.get2Power(exp);       System.out.println(str);    }}適用性:你想使用一個已經存在的類,而他的接口不符合你的需求。你想創建一個可以復用的類,該類可以與其他不相關的類或不可預見的類協同工作。你想使用一些已經已經存在的子類,但是不可能對每一個都進行子類化已一匹配他們的接口,對象適配器可以適配他的父類接口。 適配器如同一個常見的變壓器,也如同電腦的變壓器和插線板之間的電源連接線,他們雖然都是3相的,但是電腦后面的插孔卻不能直接插到插線板上。 作者曾經遇到過一個ASP編程的難題,asp不是面向對象的,但是卻可以借鑒適配器模式解決問題。問題是這樣的,在一個產品表(product)中的所有產品都有一個編號,字段名字是bh,每個編號是唯一的,但卻不是主鍵,表中使用一個自動增長的id作為主鍵。在產品的詳情頁中使用傳過來的參數id查詢產品,而在另外的一個系統中也有一個同樣的表,需要訪問詳情頁(已經由另外的一個程序員設計好,并且代碼晦澀難懂),由于字段值是自動增長的,兩個表中的主鍵并不對應(在其中的一個系統中進行刪除添加都會引起id的增長),在具體的實現中,本人在有詳情頁的系統中添加了一個頁面(adapter),接受傳過來的產品編號bh,然后根據編號查找數據庫得到相應產品的駐鍵id,最后讓頁面跳轉到詳情頁并傳遞一個id,在另外的系統中只要得到產品的編號bh,并把bh作為參數傳遞到添加的頁面(adapter)便可以得到正確的結果。   如果覺得寫得好,請一定要支持一下,以給我信心和鼓勵把剩下的模式例子寫出來
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嫩草91在线 | 91社影院在线观看 | 久久91精品国产91久久yfo | 欧洲色阁中文字幕 | 国产精品久久久久久久久久三级 | 精品国产一区三区 | 成年人观看免费视频 | 午夜生活理论片 | 羞羞视频免费网站男男 | 精品一区二区在线播放 | 日日噜噜噜噜久久久精品毛片 | 成人免费观看av | 久久久国产一级片 | 99激情| 国产一区二区观看 | 午夜视频福利 | 久久久www成人免费毛片 | 亚洲小视频在线 | 91嫩草丨国产丨精品入口 | 欧美aaaaaaaa| 日韩视频在线观看免费 | 欧美黄色免费视频 | 久草在线手机视频 | www.成人在线 | 国产一区二区三区在线免费 | 91av亚洲| 线观看免费完整aaa 一二区成人影院电影网 | 在线成人精品视频 | 国产日产精品一区二区三区四区 | 91精品国产91 | 高清av免费 | 午夜视频色| 午夜色片| 日本娇小videos高潮 | 红杏亚洲影院一区二区三区 | av观看网站 | 欧美精品亚洲人成在线观看 | 国产精品一区视频 | 一级免费黄色免费片 | 久久精品视频网站 | 草久免费 |