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

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

Android 設計模式之適配器模式

來源:程序員人生   發(fā)布時間:2014-09-27 05:37:22 閱讀次數(shù):2791次

適配器模式的定義是:將一個類的接口,轉換成客戶期望的另一個接口,適配器讓原本接口不兼容的類可以作無間??聪乱韵聝蓮垐D就更清楚了



適配器可以實現(xiàn)接口的解耦,如果過一段時間后,廠家想改變接口,適配器可以把改變的部分封裝起來,用戶就不需要跟著接口改變而改變,只要改變適配器就行了。

有這樣一個需求:有一個鴨子類和一個火雞類,我想用火雞對象來冒充鴨子,但火雞和鴨子的方法不完全一樣,這時就需要一個轉換器

Duck.java鴨子接口

package com.dzt.adapter; public interface Duck { public void quack(); public void fly(); }
Turkey.java火雞接口

package com.dzt.adapter; public interface Turkey { public void gobble(); public void fly(); }
實現(xiàn)一個鴨子類MallardDuck.java
package com.dzt.adapter; public class MallardDuck implements Duck { @Override public void quack() { // TODO Auto-generated method stub System.out.println("MallardDuck------------------>quack"); } @Override public void fly() { // TODO Auto-generated method stub System.out.println("MallardDuck------------------>fly"); } }
實現(xiàn)一個火雞類WildTurkey.java

package com.dzt.adapter; public class WildTurkey implements Turkey { @Override public void gobble() { // TODO Auto-generated method stub System.out.println("WildTurkey------------------>gobble"); } @Override public void fly() { // TODO Auto-generated method stub System.out.println("WildTurkey------------------>fly"); } }
要想把火雞轉成一個鴨子就要創(chuàng)建一個適配器TurkeyAdapter.java

package com.dzt.adapter; /** * 可以把火雞轉化成鴨子 * * @author Administrator * */ public class TurkeyAdapter implements Duck { Turkey turkey; public TurkeyAdapter(Turkey turkey) { this.turkey = turkey; } @Override public void quack() { // TODO Auto-generated method stub turkey.gobble(); } @Override public void fly() { // TODO Auto-generated method stub for (int i = 0; i < 5; i++) turkey.fly(); } }
由于是要把火雞轉成鴨子,所以需要實現(xiàn)鴨子接口,和鴨子實現(xiàn)類有相同的方法,傳入需要適配的對象(火雞)

測試代碼

package com.dzt.adapter; /** * 使用適配器模式 需求:由于找不到合適的鴨子,只能暫時到火雞來代替鴨子,但鴨子和火雞的方法不一樣,此時就需要用一個”中間人“進行轉換。 * * @author Administrator * @data 2014.08.19 */ public class AdapterModel1 { public static void main(String[] args) { WildTurkey wildTurkey = new WildTurkey(); MallardDuck mallardDuck = new MallardDuck(); Duck adapter = new TurkeyAdapter(wildTurkey); System.out.println("turkey say.................."); wildTurkey.gobble(); wildTurkey.fly(); System.out.println("duck say.................."); mallardDuck.quack(); mallardDuck.fly(); System.out.println("adapter say.................."); adapter.quack(); adapter.fly(); System.out.println("-------------------------------------------------"); } }
這樣在適配器就能使用鴨子類中的方法,這個模式可以降低客戶與系統(tǒng)之間的耦合,更利于程序的可維護性

相關代碼:http://download.csdn.net/detail/deng0zhaotai/7835473

參考書籍:《Head First 設計模式》

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 岛国av免费看 | 成年人视频网站 | 久久久久毛片 | 久久久性 | 成人免费在线电影 | 中文字幕精品久久久乱码 | 啪啪精品视频 | 五月婷婷综合激情 | 国产毛片精品国产一区二区三区 | 国产精品久久久久久久久久久久久久久 | 欧洲亚洲成人 | 国产精品欧美一区二区三区不卡 | 国产精品呻吟久久av凹凸 | 成人动漫视频 | 亚洲性无码av在线 | 久久视频免费观看 | 欧美精品久久久久a | 2019国产精品视频 | 欧美高清dvd | 麻豆视频一区二区 | 亚洲综合字幕 | 天堂av片| 网站一区 | 久久国产精品网站 | 九九热视频在线 | 国产精品久久久久久久久久久久 | 亚洲免费一区二区 | 日韩中文av | 偷拍自拍网 | 国产99久久精品一区二区永久免费 | 国产成人精品一区二区三区在线 | 国产精品视频一区二区三区不卡 | 中日韩在线观看 | 99福利视频 | 久久精品视频网站 | 国产一区久久久 | 在线黄网| 日韩一区av | 91视频国产免费 | 成人影视免费 | 九九九九久久久久 |