多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > 設(shè)計模式之適配器模式

設(shè)計模式之適配器模式

來源:程序員人生   發(fā)布時間:2014-12-16 08:31:25 閱讀次數(shù):2942次

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

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


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

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

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

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


適配器分為類適配器模式和對象適配器模式,可以將1個系統(tǒng)的接口和本來不相容 的另外一個系統(tǒng)的類聯(lián)系起來,從而使得這兩個雷能夠1起工作,強調(diào)了對接口的轉(zhuǎn)換。


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


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

下面講講實現(xiàn)的源碼,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("現(xiàn)在開始進行電壓轉(zhuǎn)換....."); 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(); } }

運行結(jié)果:

我提供的電壓是:220 現(xiàn)在開始進行電壓轉(zhuǎn)換 arm正常運行


PS:

參考帖子:點擊打開鏈接


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 性欧美高清精品video | 黑人videovideosex大 | 日韩欧美亚洲一区精选 | 亚洲精品第一第二区 | 毛片色毛片18毛片美女 | 午夜久久久久久亚洲国产精品 | 日韩免费观看一级毛片看看 | 香港aa三级久久三级不卡 | 亚洲一区精品伊人久久伊人 | 久久99精品一级毛片 | 中文字幕国产欧美 | 在线精品日韩一区二区三区 | 一区小说二区另类小说三区图 | 免费男女视频 | 中国xxxx做受欧美1314 | 黄色免费在线网址 | 日韩欧美在线观看视频 | 欧美日韩国产一区二区三区欧 | 高清欧美性猛交xxxx黑人猛交 | 久久精品免费全国观看国产 | 最近中文字幕免费完整 | 免费视频不卡 | 久久亚洲日本不卡一区二区 | 午夜免费啪视频观看网站 | 激情视频在线观看免费 | 欧洲一区二区三区 | 国产香蕉偷在线观看视频 | 日本三级午夜理伦三级三 | 久久精品久 | 一区二区三区免费视频网站 | 精品久久久久久国产免费了 | 在线观看亚洲视频 | 91porn丨首页入口 | 午夜影院亚洲 | 91热久久免费频精品黑人99 | 亚洲最大的黄色网址 | 欧美成人综合在线观看视频 | 手机在线精品视频每日更新 | 亚洲国产精品久久久久久网站 | 性videos另类hdwww | 极品欧美 |