構建模式--Adapter模式(JAVA)

來源:互聯網
上載者:User

標籤:har   1.0   size   style   interface   ada   closed   模式   建立   

適配器模式:

           適配器就相當於我們的轉接頭,比如手機充電器插頭(小米和華為的手機充電器不能共用,這時候就可以給華為的充電器按一個轉接頭,就可以給小米手機充電)。

          同理,當一個類(充電器 HuaweiCharger)實現了某一個介面(華為 HuaweiPhone),但有時我們又需要去實現另一個介面(小米 XiaomiPhone),如果直接讓充電器去實現小米介面,就需要實現小米介面中的方法,如果充電器類已經被打到一個包中,這時候修改就比較困難,也違反開閉原則(擴充開,修改閉)。因此我們就需要建立一個適配器類(HTXAdapter Huawei Transform Xiaomi Adapter)去實現小米介面,同時又繼承自充電器類。

 1 /** 2  * 華為手機介面 3  *  4  * @author DennyZhao 5  * @date 2017年6月20日 6  * @version 1.0 7  */ 8 public interface HuaweiPhone { 9     10     public int getSquarePlug();11     12     public int getSquareInterface();13     14     public void getAndroidSys();15     16     public void getHuaweiInput();17     18     public void getInterCpu();19     20     public void getInterBoard();21 22 }
HuaweiPhone
 1 /** 2  * 小米手機 3  *  4  * @author DennyZhao 5  * @date 2017年6月20日 6  * @version 1.0 7  */ 8 public interface XiaomiPhone { 9     10     public int getCirclePlug();11     12     public int getCircleInterface();13     14     public void getAndroidPlusSys();15     16     public void getXiaomiInput();17     18     public void getAMDCpu();19     20     public void getAMDBoard();21 }
XiaomiPhone
 1 /** 2  * 華為充電器 3  *  4  * @author DennyZhao 5  * @date 2017年6月20日 6  * @version 1.0 7  */ 8 public class HuaweiCharger extends HuaweiPhoneImpl implements HuaweiPhone{ 9 10     @Override11     public int getSquarePlug() {12         System.out.println("squarePlug----------");13         return 0;14     }15 16     @Override17     public int getSquareInterface() {18         System.out.println("squareInterface----------");19         return 0;20     }21 22 23 }
HuaweiCharger
 1 /** 2  * description:設計原則講究擴充開,修改閉。因此當我們需要將一個類去實現另一個介面時,可以通過建立子類去實現這個介面。 3  *  4  * @author DennyZhao 5  * @date 2017年6月12日 6  * @version 1.0 7  */ 8 public class HTXAdapter extends HuaweiCharger implements XiaomiPhone{ 9 10     /**11      * 小米適配12      */13     @Override14     public int getCirclePlug() {15         int a = super.getSquarePlug();16         return a+ 5;17     }18 19     /**20      * 小米適配21      */22     @Override23     public int getCircleInterface() {24         int b = super.getSquareInterface();25         return b + 4;26     }27         @Override28     public void getAndroidPlusSys() {29         // TODO Auto-generated method stub30         31     }32 33     @Override34     public void getXiaomiInput() {35         // TODO Auto-generated method stub36         37     }38 39     @Override40     public void getAMDCpu() {41         // TODO Auto-generated method stub42         43     }44 45     @Override46     public void getAMDBoard() {47         // TODO Auto-generated method stub48         49     }50 51 }
HTXAdapter

通過上面的代碼就可以知道,HTXAdaper實現了Xiaomi介面的所有方法,這樣就不會汙染HuaweiCharger了。隨時不用可以去掉。插拔式結構。

 

構建模式--Adapter模式(JAVA)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.