常見設計模式之【適配器模式】

來源:互聯網
上載者:User

常用的問題:比如手機、Mp3、電腦等的充電器,轉換接頭都相當於一個適配器。類似這種資料轉換的馬上想到適配器模式

package MyAdapter;/** *@Description: 適配器模式 *@author Potter    *@date 2012-8-14 下午11:17:12 *@version V1.0    */public class App {public static void main(String[] args) {Adapter adapter=new Adapter();adapter.setPower(new Power(220));Device phone=new Phone();phone.ac(adapter);}}

電源類:

package MyAdapter;/** *@Description: 電源 *@author Potter    *@date 2012-8-14 下午11:20:35 *@version V1.0    */public class Power {int v;//電壓public Power(int v){this.v=v;}}

適配器類:

package MyAdapter;/** *@Description:  *@author Potter    *@date 2012-8-14 下午11:18:10 *@version V1.0    */public class Adapter {Power power;/**轉變成合適的電源給裝置充電**/public int convert(Device device){if(device instanceof Mp3){power.v=20;}else if(device instanceof Phone){power.v=25;}return power.v;}public Power getPower() {return power;}public void setPower(Power power) {this.power = power;}}

 

裝置抽象類別

package MyAdapter;/** *@Description:  *@author Potter    *@date 2012-8-15 下午09:59:58 *@version V1.0    */public abstract class Device {/**充電 * @param p 電壓 */public abstract void ac(Adapter adapter);}

具體類MP3:

package MyAdapter;/** *@Description:  *@author Potter    *@date 2012-8-14 下午11:18:39 *@version V1.0    */public class Mp3 extends Device{@Overridepublic void ac(Adapter adapter) {System.out.println("map3 充電,電壓為"+adapter.convert(this)+"V");}}

具體類Phone:

package MyAdapter;/** *@Description:  *@author Potter    *@date 2012-8-14 下午11:18:29 *@version V1.0    */public class Phone extends Device{@Overridepublic void ac(Adapter adapter) {System.out.println("手機充電,電壓為"+adapter.convert(this)+"V");}}

列印結果:

手機充電,電壓為25V

 

這是我對適配器模式的理解,大家如果覺得小弟哪裡講得不對的地方,還請指標。謝謝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.