設計模式之適配器模式

    最近公司在作一個項目,是電信的一個項目,感受規模蠻大的,因爲仍是屬於實習生,基本上也不會接觸一些核心的東西,但因爲本身的好學,索性向項目經理要了項目的一部分源代碼(都是本身反編譯過來的),看了一個禮拜以後,以爲雖然可能代碼的邏輯能看懂,但對於代碼的設計可能仍是有點欠缺,好比說代碼使用了什麼設計模式?爲何要使用這種設計模式?我想,對於這些問題並非去聽別人的講解本身就能體會 的,更多的是要本身的積累,有些東西多是隻可意會,不可言傳吧!java

   針對以上問題,我必須尋找一個突破口,我想,我要開始積累一些東西了,哪怕要花好長的時間我也在所不惜。設計模式

   下面是講設計模式的:關於設計模式的定義百度百科裏面能夠找到,這裏主要記錄本身對設計模式的理解並會有一個例子來講明。this

 

  這一講主要講解設配器模式,可能之後會補充其餘的設計模式。設計

 

  關於適配器模式,能夠這麼理解,適配器模式能夠實現兩個不相關的類或者接口的相互調用,而無須對原有類或接口的內容進行改變,適配器模式又分爲類適配器模式與對象適配器模式。對象

 下面主要是例子,能加深理解:blog

 1:所謂類適配器模式,無非就是類與類之間的繼承關係的體現。繼承

  咱們如今定一個接口Money,裏面有一個方法,是實現掙錢操做的接口

 pubilc interface Money{get

    public float makeMoney();博客

}

而咱們如今要用一個類實現這個接口完成掙錢操做,可是咱們發現以前在咱們的代碼裏面有一個類MyMoney已經實現了掙錢操做,因此咱們能夠這樣.

//掙錢類

public class MyMoney{

  //掙錢方法

     public float setMoney(){

          return 1234.0;

    }

}

public class Test extends MyMoney implements Money{

    public float makeMoney(){

        return setMoney();

    }

}

上面咱們無須實現掙錢方法,由於咱們有限成的。

2:對象適配器模式,一對象來實現適配器模式

假設上面的接口中還有一個花錢的方法

pubilc interface Money{

    public float makeMoney();

    public float doMoney();

}

而咱們如今要實現這個接口並完成掙錢與花錢操做,可是咱們發現以前在另外一個類中也含有花錢這個方法,

//掙錢類

public class MyMoney{

  //掙錢方法

     public float setMoney(){

          return 1234.0;

    }

}

//花錢類

public class ToMoney{

   //花錢方法

 public float    getMoney(){

     return 100;

   }

}

但咱們知道java不支持多繼承,因此這裏對象適配器模式就出來了。

public class Test implements Money{

    private MyMoney mm=null;

    private ToMoney tm=null;

    public Test(MyMoney mm,ToMyoney tm){

       this.mm=mm;

      this.tm=tm;

    }

     public float makeMoney(){

          return this.mm.setMoney();

     }

    public float doMoney(){

         return this.tm.getMoney();

     }

}

 

 

 

 

 

本文出自 「陳硯羲」 博客,轉載請與做者聯繫!

相關文章
相關標籤/搜索