Java設計模式之適配器模式簡介_java

來源:互聯網
上載者:User

本文舉例說明兩種適配器模式,即類適配模式和對象適配模式,詳情如下:

1.類適配模式:

舉個例子來說明:在地球時代,所有坐騎都是只能跑,不能飛的,而現在很多坐騎在地球都可以飛了。假設,地球時代的坐騎只能跑,而現在的坐騎不僅能飛還能跑,我們可以用類適配模式來實現。
這裡需要注意的是,適配器繼承源類,實現目標介面。
範例程式碼如下:

package adapter;/** * DOC 源 *  */public class Sources {  public void run() {    System.out.println("run");  }}package adapter;/** * DOC 目標介面 *  */public interface ITarget {  public void run();  public void fly();}package adapter;/** * DOC 繼承源類,實現目標介面,從而實作類別到介面的適配 *  */public class Adapter extends Sources implements ITarget {  @Override  public void fly() {    System.out.println("fly");  }}

2.對象適配模式:

假設一個適配器要適配多個對象,可以將這些對象引入到適配器裡,然後通過調用這些對象的方法即可。

實現代碼如下::

package adapter;/** *  * DOC 來源物件,只有跑的功能 *  */public class Animal {  public void run() {    System.out.println("run");  }}package adapter;/** * DOC 目標介面,既能跑,又能飛 *  */public interface ITarget {  public void run();  public void fly();}package adapter;/** * DOC 通過建構函式引入了來源物件,並實現了目標的方法 *  */public class Adapter implements ITarget {  private Animal animal;  // private animal animal2....可以適配多個對象  public Adapter(Animal animal) {    this.animal = animal;  }  /**   * DOC 拓展介面要求的新方法   */  public void fly() {    System.out.println("fly");  }  /**   * DOC 使用來源物件的方法   */  public void run() {    this.animal.run();  }}

聯繫我們

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