日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 設計模式之適配器模式

設計模式之適配器模式

來源:程序員人生   發布時間:2014-12-16 08:31:25 閱讀次數:2948次

適配器模式,這個設計模式很好理解,由于在生活中實在是太常見了。比如電源適配器,插座提供1個220v的電壓,而我的電腦用19v的電壓,arm用5v的電壓。如果目標很少,電源可以給你定制1個電壓,但當需求電壓很多的時候就沒辦法去提供各種各樣的需求了,此時電源適配器就派上用處了,通過1個適配,輕松獲得需求的電壓。類似的還有翻譯,比如某個網站提供的是通用的英語原文,而用戶只懂中文,就需要1個翻譯官充當適配器的作用去做適配。

適配器模式,在我們的學習進程中,處處可見,比如C++的stack/queue就是所謂的適配器容器,用戶有很多這樣的需求,有1個雙端隊列提供了這個功能,但接口其實不是用戶想要的接口,通過stack這類適配器去做相應的轉換就能夠了。在android中,適配器就更常見了,比如listview上需要各種數據,但是這些數據本身并沒有提供對應的接口,所以需要各種適配器去封裝這些數據,然后供listview使用。


前面大概說了下利用,下面說點適配器中的角色(僅以電源適配器為例:

(1)目標Target: arm,arm運行需要5v的電壓;

(2)待適配的類Adaptee(源類):可以提供220v的電壓,其實不能滿足目標的需求;

(3)適配器(Adapter):電源適配器,將220v的電壓轉換成5v的電壓。


適配器分為類適配器模式和對象適配器模式,可以將1個系統的接口和本來不相容 的另外一個系統的類聯系起來,從而使得這兩個雷能夠1起工作,強調了對接口的轉換。


UML還是自己畫吧,我太懶了,自己手畫的。。。


----------------------------------------------------------------------------------

下面講講實現的源碼,JAVA:

待適配的源類:

//PowerSouce.java package org.uestc.adapter; public class PowerSource { private int voltage; public void SetDianya(int v) { voltage = v; System.out.println("我提供的電壓是:"+voltage); } public int GetVoltage() { return voltage; } }

適配器:

//Adapter.java package org.uestc.adapter; import org.uestc.adapter.PowerSource;; public class Adapter { private PowerSource powerSource; public Adapter(PowerSource powerSource) { this.powerSource = powerSource; } public int voltageSwitch() { int intpuDianya = powerSource.GetVoltage(); System.out.println("現在開始進行電壓轉換....."); int outputDianya = 5; return outputDianya; } }

目標類:

//Arm.java package org.uestc.adapter; public class Arm { private int voltage; public void inputDianya(int v) { voltage = v; } public void run() { if(voltage== 5) { System.out.println("arm正常運行"); } else { System.out.println("輸入電壓不正常不能開機運行"); } } }

客戶端測試:

//client.java package org.uestc.adapter; import org.uestc.adapter.PowerSource;; public class Client { public static void main(String []args) { PowerSource powerSource = new PowerSource(); powerSource.SetDianya(220); Adapter adapter = new Adapter(powerSource); Arm arm = new Arm(); arm.inputDianya(adapter.voltageSwitch()); arm.run(); } }

運行結果:

我提供的電壓是:220 現在開始進行電壓轉換 arm正常運行


PS:

參考帖子:點擊打開鏈接


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 99re视频在线观看 | www久草| 久久精品国产亚洲一区二区三区 | 九九热免费精品视频 | 天天操中文字幕 | 可以免费看av | 成人一区二 | 毛片无码国产 | 91 久久 | 亚洲一区二区在线视频 | 久久精品无码一区二区三区 | 国产精品久久久一区 | 成人动漫视频 | 黄色片www | 国产99视频在线观看 | 欧美激情综合五月色丁香小说 | 久久久久久久久久久网站 | 亚洲成人av一区二区 | 天天碰天天操 | 国产午夜精品福利 | 国产欧美精品一区二区三区 | 国产一区二区免费 | 国内久久精品视频 | 日韩精品午夜 | 久久国产一区二区三区 | 欧美日韩亚洲系列 | 成人片在线看 | 成人在线免费视频观看 | 国产不卡一区 | 成人福利在线看 | 国产iv一区二区三区 | 欧洲精品一区 | 久久久18 | 欧美国产中文字幕 | 日韩av一卡二卡 | 言情恋老小说言情网 | 欧美在线视频a | 激情在线观看视频 | 99久久国 | 精品久久久一区二区 | 婷婷毛片|