日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

适配器模式理解和使用

發(fā)布時間:2025/5/22 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适配器模式理解和使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

內容參考??https://www.jianshu.com/p/9d0575311214?、慕課網(wǎng)

1. 是什么?作用?

  • 定義一個包裝類(Adapter),用于包裝不兼容接口的對象(Adaptee)
  • 作用
    • 優(yōu)點: 可以讓接口不兼容而不能一起工作的那些類可以在一起工作
    • 缺點:?過多的使用適配器,會讓系統(tǒng)非常零亂,不易整體進行把握

2. 理解

  分為兩個模式

  • 類的適配器模式、
  • 對象的適配器模式

3. 使用實例

a. 實例概況 -?類的適配器模式 - 繼承的方式

  • 背景:買了一個進口筆記本電腦
  • 沖突:筆記本電腦需要的三項電源,和只提供的二項電源沖突
  • 解決方案:設置一個適配器二項充電口轉化為三項充電口

步驟1:?創(chuàng)建Target接口(期待得到的插頭):能輸出三項供電

/*** 插頭提供三項供電 (target)*/ public interface ThreePower {/*** 三項供電*/void powerByThree(); }

?

步驟2:?創(chuàng)建源類(現(xiàn)有的插頭)

/*** 插頭 提供二項供電 Adaptee*/ public class TwoPower {public void powerByTwo() {System.out.println("提供二項供電");} }

?

步驟3:創(chuàng)建適配器類(Adapter)

/*** 二項轉三項的適配器 繼承的方式 類*/ public class TwoToThreeAdapter2 extends TwoPower implements ThreePower {@Overridepublic void powerByThree() {System.out.println("借助繼承適配器轉化二項電");this.powerByTwo();} }

步驟4:定義具體使用目標類,并通過Adapter類調用所需要的方法從而實現(xiàn)目標, 讓筆記本能夠用使用三項電

/*** 筆記本電腦 這是使用組合模式的-適配器模式*/ public class NoteBook {/*** 期望的三項供電接口*/private ThreePower threePower;public NoteBook(ThreePower threePower) {this.threePower = threePower;}public static void main(String[] args) {// ============================ 繼承方式的適配器使用 類適配器 =====================================ThreePower threePower1 = new TwoToThreeAdapter2();NoteBook noteBook1 = new NoteBook(threePower1);noteBook1.recharge();noteBook1.work();}public void work() {System.out.println("筆記本電腦開始工作!");}public void recharge() {// 使用三項充電 threePower.powerByThree();} }

?

b. 實例概況 - 對象的適配器模式 - 組合的方式 (感覺用的更多)

與類的適配器模式相同,對象的適配器模式也是把適配的類的API轉換成為目標類的API。

步驟1:?創(chuàng)建Target接口(期待得到的插頭):能輸出三項供電

// 參照如上

步驟2:?創(chuàng)建源類(現(xiàn)有的插頭)

// 參照如上

步驟3:?創(chuàng)建適配器類(Adapter)(不使用繼承而是委派)

/*** 二項轉三項的適配器 組合的方式 對象適配器*/ public class TwoToThreeAdapter implements ThreePower{private TwoPower twoPower;public TwoToThreeAdapter(TwoPower twoPower) {this.twoPower = twoPower;}
@Override
public void powerByThree() {System.out.println("借助組合適配器轉化二項電");twoPower.powerByTwo();} }

步驟4:定義具體使用目標類,并通過Adapter類調用所需要的方法從而實現(xiàn)目標

/*** 筆記本電腦 這是使用組合模式的-適配器模式*/ public class NoteBook {/*** 期望的三項供電接口*/private ThreePower threePower;public NoteBook(ThreePower threePower) {this.threePower = threePower;}public static void main(String[] args) {// ============================ 組合方式的適配器使用 對象適配器 =====================================// 現(xiàn)在只有二項供電TwoPower twoPower = new TwoPower();ThreePower threePower = new TwoToThreeAdapter(twoPower);NoteBook noteBook = new NoteBook(threePower);// 1. 充電 noteBook.recharge();// 2. 工作 noteBook.work();}public void work() {System.out.println("筆記本電腦開始工作!");}public void recharge() {// 使用三項充電 threePower.powerByThree();} }

4. 總結

第二種對象的適配器模式在angular里面注入組件時用的應該是適配器模式, 使用屬性來組合,耦合性第一點

第一種類的適配器模式解耦合更好,因為要繼承

適配器好處

  • 重用
    • 復用的現(xiàn)存的類, 解決了現(xiàn)存類和復用環(huán)境要不一致的問題
  • 低耦合
    • 無需修改原有代碼(遵循開閉原則)

?

轉載于:https://www.cnblogs.com/milicool/p/11125973.html

總結

以上是生活随笔為你收集整理的适配器模式理解和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。