摘要:時間年月日星期二說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)源碼學(xué)習(xí)源碼第一章適配器模式的簡介簡介生活中的適配器翻譯軟件插座適配器適配器模式定義適配器模式講將一個類的接口,轉(zhuǎn)換成客戶期望的另外一個接口。
時間:2017年08月29日星期二
說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com
教學(xué)源碼:https://github.com/zccodere/s...
學(xué)習(xí)源碼:https://github.com/zccodere/s...
生活中的適配器
翻譯軟件 插座適配器
適配器模式定義
適配器模式講將一個類的接口,轉(zhuǎn)換成客戶期望的另外一個接口。使得原本由于接口不兼容而不能一起工作的那些類可以在一起工作
適配器模式類圖
適配器分類
1.聚合(組合) 定義:采用聚合(組合)方式的適配器成為對象適配器 特點:把“被適配者”作為一個對象聚合到適配器類中,以修改目標(biāo)接口包裝被適配者 2.繼承 定義:采用繼承方式的稱為類適配器 特點:通過多重繼承不兼容接口,實現(xiàn)對目標(biāo)接口的匹配,單一的為某個類而實現(xiàn)適配第二章:適配器模式的實現(xiàn) 2-1 聚合方式
代碼編寫
1.編寫ThreePlug類
package com.myimooc.designpattern.c4adapter; /** * @describe 三相插座接口 * @author zc * @version 1.0 2017-08-29 */ public interface ThreePlug { /** * 使用三相電流供電 */ void powerWithThree(); }
2.編寫GbTwoPlug類
package com.myimooc.designpattern.c4adapter; /** * @describe 二相插座接口 * @author zc * @version 1.0 2017-08-29 */ public class GbTwoPlug { /** * 使用二相電流供電 */ public void powerWithTwo(){ System.out.println("使用二相電流供電"); } }
3.編寫TwoPlugAdapter類
package com.myimooc.designpattern.c4adapter; /** * @describe 二相轉(zhuǎn)三相的插座適配器-聚合方式 * 怎么實現(xiàn)的 * 1.實現(xiàn)目標(biāo)接口 ThreePlug * 2.聚合 GbTwoPlug 類到當(dāng)前適配器類中為成員變量 * 3.把“被適配者”作為一個對象聚合到適配器類中,以修改目標(biāo)接口包裝被適配者 * @author zc * @version 1.0 2017-08-29 */ public class TwoPlugAdapter implements ThreePlug { private GbTwoPlug plug; public TwoPlugAdapter(GbTwoPlug plug) { this.plug = plug; } @Override public void powerWithThree() { System.out.println("通過轉(zhuǎn)換-聚合方式"); plug.powerWithTwo(); } }
4.編寫NoteBook類
package com.myimooc.designpattern.c4adapter; /** * @describe 筆記本電腦 * @author zc * @version 1.0 2017-08-29 */ public class NoteBook { /** * 期望使用三相插座進行充電 */ private ThreePlug plug; public NoteBook(ThreePlug plug) { this.plug = plug; } /** * 使用插座進行充電 */ public void charge(){ plug.powerWithThree(); } public static void main(String[] args) { GbTwoPlug two = new GbTwoPlug(); // 使用二相轉(zhuǎn)三相的適配器 ThreePlug three = new TwoPlugAdapter(two); // 使用三相插座進行充電 NoteBook nb = new NoteBook(three); nb.charge(); } }2-2 繼承方式
代碼編碼
1.編寫TwoPlugAdapterExtends類
package com.myimooc.designpattern.c4adapter; /** * @describe 二相轉(zhuǎn)三相的插座適配器-繼承方式 * @author zc * @version 1.0 2017-08-29 */ public class TwoPlugAdapterExtends extends GbTwoPlug implements ThreePlug { @Override public void powerWithThree() { System.out.println("通過轉(zhuǎn)換-繼承方式"); this.powerWithTwo(); } }
2.修改NoteBook類
package com.myimooc.designpattern.c4adapter; /** * @describe 筆記本電腦 * @author zc * @version 1.0 2017-08-29 */ public class NoteBook { /** * 期望使用三相插座進行充電 */ private ThreePlug plug; public NoteBook(ThreePlug plug) { this.plug = plug; } /** * 使用插座進行充電 */ public void charge(){ plug.powerWithThree(); } public static void main(String[] args) { GbTwoPlug two = new GbTwoPlug(); // 使用二相轉(zhuǎn)三相的適配器 ThreePlug three = new TwoPlugAdapter(two); // 使用三相插座進行充電 NoteBook nb = new NoteBook(three); nb.charge(); three = new TwoPlugAdapterExtends(); nb= new NoteBook(three); nb.charge(); } }第三章:適配器模式的總結(jié) 3-1 總結(jié)
適配器模式是一種編程思想
只要是把不兼容的轉(zhuǎn)化成兼容的、匹配的,我們就叫它適配器
模式的變體
適配器的作用
1.透明:通過適配器,客戶端可以調(diào)用同一個接口,因而對客戶端來說是透明的 這樣做更簡單、更直接、更緊湊 2.重用:復(fù)用了現(xiàn)存的類,解決了現(xiàn)存類和復(fù)用環(huán)境要求不一致的問題 3.低耦合:將目標(biāo)類和適配者類解耦,通過引入一個適配器類重用現(xiàn)有的適配者類, 而無需修改原有代碼(遵循開閉原則) 開閉原則:對修改關(guān)閉,對擴展開放
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70296.html
時間:2017年08月30日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:責(zé)任鏈模式簡介 1-1 課程簡介 課程大綱 什么是責(zé)任鏈模式 如何實現(xiàn)責(zé)任鏈模式 責(zé)任鏈模式如何解耦 責(zé)任鏈模式的應(yīng)用 案例:...
時間:2017年08月27日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:單例模式簡介 1-1 簡介 單例模式 概念及應(yīng)用場合 餓漢模式 懶漢模式 餓漢模式與懶漢模式的區(qū)別 什么是設(shè)計模式 是一套被反...
摘要:時間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。案例介紹飲料機配置模版把水煮沸泡飲料把飲料倒進杯子加調(diào)味料第二章模版模式實現(xiàn)基本框架代碼編寫編寫類模版模式抽象基類,為所有子類提供一個算法框架。 時間:2017年09月02日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源...
時間:2017年08月31日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:策略模式簡介 1-1 簡介 課程大綱 什么是策略模式 策略模式如何實現(xiàn) 策略模式總結(jié)篇 實例案例分享 日常生活中的策略 Wor...
摘要:時間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。這對所有形態(tài)的工廠模式都是重要的這個系統(tǒng)的產(chǎn)品有至少一個的產(chǎn)品族同屬于一個產(chǎn)品族的產(chǎn)品是設(shè)計成在一起使用的。 時間:2017年08月27日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.c...
閱讀 1237·2021-11-23 09:51
閱讀 2015·2021-10-08 10:05
閱讀 2372·2019-08-30 15:56
閱讀 1926·2019-08-30 15:55
閱讀 2663·2019-08-30 15:55
閱讀 2511·2019-08-30 13:53
閱讀 3524·2019-08-30 12:52
閱讀 1281·2019-08-29 10:57