### 《大話設計模式》
前一段時間讀過一陣這本書,但是那是還沒有什么面向對象的概念,而且對于設計模式什么的都一竅不通。。。現在感覺懂一點了,所以想寫一點東西,和大家一起分享一下我的感受!
以前感覺代碼只要實現了自己想要達到的功能就ok了,哪還管什么復用性,耦合性啊,可是開發時間越久就越感覺設計模式是如此的重要,尤其現在越來越多的多人開發項目,要是設計模式用好了,可是少些很多的代碼,而且可以讓 復制粘貼 消失在我們的代碼里!!!
從今天開始我盡量每兩天讀一章《大話》,然后寫一篇博文與大家分享,法定節假日除外。。。
代碼的話我就根據《大話》然后自己寫java的偽代碼,在最后會用一個自己在現實中碰到的問題來解釋用處。
### 封裝&多態&繼承
這是面向對象的三大特性,通過這三者,可以把程序的藕合度降低,增加程序的復用性,而且容易修改和擴展!
就已書上計算器的代碼為例
~~~
public class Operation
{
//存放屬性,及用于計算的兩個數get,set方法和獲得答案的方法(被重寫的方法)
}
public class AddOper extends Operation
{
//重寫獲得答案的方法——做兩個數的加法運算
}
public class SubOper extends Operation
{
//重寫獲得答案的方法——做兩個數的減法運算
}
public class MulOper extends Operation
{
//重寫獲得答案的方法——做兩個數的乘法運算
}
public class DivOper extends Operation
{
//重寫獲得答案的方法——做兩個數的除法運算
}
~~~
這樣子寫完后想增加方法就很簡單了,只需要增加一個類去繼承Operation類然后重寫計算的方法就可以了,而且這幾個類 都是可以重復調用的,在控制臺程序,界面程序,手機程序中都可以
### 簡單工廠模式
感覺簡單工廠模式多用于 解決對象的創建 問題。比如你寫了一些類,但是到底創建哪一個類?實例化對象的時候會不會因為創建太多了弄混?這個時候就應該考慮用一個 單獨的類來做這個創建實例的過程(摘抄書上) 這就是工廠!
~~~
public class OperFactory
{
public static Operation createOper (String opreate)
{
// 通過傳入的符號判斷調用哪一個方法最后返回當前需要調用的對象
switch(opreate)
{
case "+":
return new AddOperation();//加法對象
case "-":
case "*":
case "/":
}
}
}
~~~
由于這幾個操作類都是繼承于父類Operation,所以在使用時只需要用一個Opreation去接收就可以了
~~~
Operation oper = OperFactory.createOper("+");
~~~
這樣這個oper就是加法類了,如果需要乘法,除法,減法,只需要往工廠對象中傳參數就可以了
### 舉例說明
在開發過程中會碰到很多需要用到工廠,例如在網絡訪問中,最近就接了一個這樣的項目,需要去訪問服務器獲取數據,我覺得用工廠模式會好很多,網絡訪問屬性是差不多的,差別只在于訪問的地址和調用的方法有一點點區別,所以就可以抽一個父類出來,如果增加一個需要訪問的頁面,那么增加一個類,再增加工廠的選項就可以了,這樣增加或者修改當前類,對于別的類就不會有影響!
~~~
public class Net
{
URL;
doURL();
}
public class Baidu extends Net
{
doURL()
{
打開貼吧!
}
}
public class Google extends Net
{
doURL()
{
打開Google地圖!
}
}
。。。。
public class NetFac
{
public static createNet(標簽)
{
根據標簽判斷生成哪一個對象
}
}
~~~
也許大家現在看,可能覺得代碼很冗余,感覺沒多大的好處,但是很簡單的一個例子,你現在去調用Net,那么你只需要知道傳一個參數給工廠類就夠了,完全不需要知道有哪一些類,這在多人開發的時候有很大的好處,因為這樣寫,兩人互不影響,你去實現你的網頁類,我只管調用工廠類就可以了,這個例子只是我淺顯的理解,它的好處真的需要大家自己再編碼中才能體會到!!!
### 總結
還是比較推薦大家去看一下《大話》這本書,感覺這本書說的內容都比較淺顯,對于設計模式的解釋也比我好和專業許多,我寫這個博文的意義只在于增強自己對于設計模式的理解,同時舉個例子可以供大家參考一下,設計模式再別的地方的用途!
- 前言
- (1)代碼無錯就是優?——簡單工廠模式
- (2)商場促銷——策略模式
- (3)&(4)&(5) 設計模式原則
- (6)穿什么有這么重要?——裝飾模式
- (7)為別人做嫁衣——代理模式
- (8)雷鋒依然在人間——工廠方法模式
- (9)簡歷復印——原型模式
- (10)考題抄錯會做也白搭——模板方法模式
- (11)迪米特法則
- (12)牛市股票還會虧錢?—— 外觀模式
- (13)好菜每回味不同——建造者模式
- (14)老板回來,我不知道——觀察者模式
- java實現事件委托
- (15)就不能不還DB嗎?—— 抽象工廠模式
- (16)無盡加班何時休息——狀態模式
- (17)在NBA我需要翻譯——適配器模式
- (18)如果再回到從前——備忘錄模式
- (19)分公司=部門——組合設計模式
- (20)想走?可以!先買票——迭代器模式
- (21)有些類也需計劃生育——單例模式
- (22)手機軟件何時統一——橋接模式
- (23)烤羊肉串引來的思考——命令模式
- (24)加薪非要老總批?——職責鏈模式
- (25)世界需要和平——中介者模式
- (26)項目多也別傻做——享元模式
- (28)男人和女人——訪問者模式