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