前言
本文主要講述配接器模式,文中使用通俗易懂的案例,使你更好的學習本章知識點并理解原理,做到有道無術,
一.什么是配接器模式
配接器模式是23種設計模式中結構型模式的一種,將一個類的介面轉換成客戶希望的另外一個介面,配接器模式使得原本由于介面不兼容而不能一起作業的那些類可以在一起作業,
二.生活中的配接器模式
1.太陽能
太陽能、風能、水能這類自然能是大自然賜予我們的禮物,比如說太陽能板就能夠把太陽能轉換成咱們的電能,然后給家里的電器使用,如果是沒有太陽能板,我們是無法直接把太陽能供給電器使用的,這個太陽能板就像設計模式中的配接器模式一樣,

2.見手青
云南人民很喜歡喜食菌類,但是不是每種菌類都可以吃,或者是有些菌類在沒完全煮熟的時候是有毒的,比如見手青,生的見手青是會讓人中毒的,而一些見手青通過烹飪完全熟透后是可以食用并且還是一道美味,不過得注意不是所有見手青的品種都可以煮熟食用,讓有毒不可食用的見手青轉換成熟透可食用無毒的見手青的這個工具就像設計模式中的配接器模式一樣,

3.充電器
中國家庭所用的交流電標準電壓為220V,如果用直接把插座里的電通往手機的話,可能會發生爆炸,這個時候我們就需要用到手機專用的充電器了,通過充電器,我們把220V的電流轉換成手機適配的電流,電腦的充電器也是同樣的原理,這個充電器就像是設計模式中的配接器模式一樣,

三.配接器模式的實作
接下來以太陽能汽車舉例,通過配接器模式來實作,先創建一個適配者類太陽類和目標抽象類客戶需要的介面
package com.qianfeng.ran;
/*
* @author:江帥
* 適配者類:Adaptee
* 太陽類
*/
public class Sun {
//發散太陽能的行為
public void behavior(){
System.out.print("太陽能");
}
}
/*
* @author:江帥
* 目標抽象類:Target
* 客戶需要的介面
*/
interface SolarToElectric {
//把太陽能轉換成電能
void transition();
}
再創建一個配接器類太陽能板和客戶類太陽能汽車
package com.qianfeng.ran;
/*
* @author:江帥
* 配接器類:Adapter
* 太陽能板
*/
public class SolarPanel implements SolarToElectric {
//太陽能類
public Sun sun;
public SolarPanel(Sun sun){
this.sun = sun;
}
//太陽能轉換成電能
@Override
public void transition() {
//獲取太陽能
sun.behavior();
System.out.print("轉換成電能");
}
}
/*
* @author:江帥
* 客戶類:Client
* 太陽能汽車
*/
class SolarCar {
//發動機
public void engine(SolarToElectric solarToElectric){
//通過太陽能板獲取能量
solarToElectric.transition();
System.out.print("發動汽車");
}
}
最后我們通過配接器模式實作把太陽能轉換成電能的程序
package com.qianfeng.ran;
/*
* @author:江帥
* 客戶端
*/
public class Demo {
public static void main(String[] args) {
//創建一個太陽能板類,需要傳遞發散太陽能的太陽類
SolarToElectric solarPanel = new SolarPanel(new Sun());
//創建一個太陽能汽車
SolarCar car = new SolarCar();
//執行結果:
//太陽能轉換成電能發動汽車
car.engine(solarPanel);
}
}
四.配套視頻
如果你不習慣閱讀技術文章,或是對文中的技術概念不能很好地理解,可以來看看我們幫你篩選出的視頻教程,戳這里
以上就是本文的全部內容啦,更多精彩可以關注小千,get技術知識點
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/555989.html
標籤:設計模式
上一篇:讀發布!設計與部署穩定的分布式系統(第2版)筆記12_超時模式
下一篇:返回列表
