在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。一個適配容許一般由於接口不兼容而不能在一塊兒工做的類工做在一塊兒,作法是將類本身的接口包裹在一個已存在的類中。
共有兩類適配器模式:編程
對象適配器模式設計模式
類適配器模式微信
模型:iphone
代碼演示(類適配器模式):ide
1.AbstractTarget:抽象目標角色函數
public interface AbstractTarget { //抽象目標角色方法 public void target(); }
2.具體的目標角色spa
public class Target implements AbstractTarget { @Override public void target() { Log.d("qzs","實現目標方法"); } }
3.初始角色Adaptee:設計
public class Adaptee { //初始的方法 public void adaptee(){ Log.d("qzs","初始的邏輯"); } }
4.適配器角色:code
public class Adapter extends Adaptee implements AbstractTarget { @Override public void target() { adaptee(); } }
5.調用對象
AbstractTarget tr=new Adapter(); tr.target();
例如,我手中有Android數據線和iphone手機,我想用安卓數據線給iphone手機充電。此時:
代碼演示:
1.Android數據線:
public class AndroidLine { public void charge(){ Log.d("qzs","Android數據線給Android手機充電"); } }
2.目標角色:
public interface AbstractIphone { public void target(); }
3.數據線轉換器
public class PhoneLineAdapter extends AndroidLine implements AbstractIphone { @Override public void target() { super.charge(); Log.d("qzs","可是我能夠經過數據線轉換器來給iphone手機充電"); } }
4.調用
AbstractIphone tr1=new PhoneLineAdapter(); tr1.target();
運行:
1.優勢
2.注意:
當初始角色的接口和實現類爲多個時,咱們在寫適配器不能用繼承的方式。能夠經過在適配器中構造函數的方法來傳遞對象從而實現數據處理,也就是對象適配器模式。
文章參考了網上信息以及《設計模式之禪》
另外能夠加入個人Android技術交流羣:458739310
你們能夠關注個人微信公衆號:「安卓乾貨鋪」一個有質量、有態度的公衆號!