設計模式:預設適配器模式

來源:互聯網
上載者:User

標籤:設計模式   預設適配器模式   

原創:http://leihuang.org/2014/12/06/default-adapter/

Structural 模式 如何設計物件之間的靜態結構,如何完成物件之間的繼承、實 現與依賴關係,這關乎著系統設計出來是否健壯(robust):像是易懂、易維護、易修改、耦合度低等等議題。Structural 模式正如其名,其分類下的模式給出了在不同場合下所適用的各種物件關係結構。

  • Default Adapter 模式
  • Adapter 模式
  • Bridge 模式
  • Composite 模式
  • Decorator 模式
  • Facade 模式
  • Flyweight 模式
  • Proxy 模式

很多情況下,一個具體類去實現一個介面,但是又不是需要實現介面中所有的方法,只需要部分方法,但是實現介面的時候,強制實現了所有的方法,這樣就導致了這個具體類含有許多空方法.這是一種浪費,也會導致混亂,所以就產生了預設適配器模式.

下面我們定義一個人介面(IPerson)

public interface IPerson{    String getName() ;    void goToSchool() ;    void work() ;    void eat() ;}

當需要一個學生的具體類時,我們會發現,如果繼承IPerson介面的話,那麼work()這個方法就必須空著,所以這裡我們先定義一個抽象的預設適配器類實現IPerson介面.

public abstract class PersonAdapter{    public String getName(){} ;    public void goToSchool(){} ;    public void work(){} ;    public void eat() ;}

接下來我們再實現我們具體的學生類(Student)

public class Student extends PersonAdapter{    private String name = null ;    public Student(String name){        this.name = name ;    }    public String getName(){        return name ;    }    public void goToSchool(){        System.out.println("go to school !") ;    }    public void eat(){        System.out.println("eating") ;    }}

下面是類結構圖

2014-12-06 20:14:29

Brave,Happy,Thanksgiving !


設計模式:預設適配器模式

聯繫我們

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