設計模式初篇

設計模式的認識

本文主要總結的自身對設計模式的學習的一些總結。
    設計模式主要是一些編碼的技巧,使得整個項目的代碼看起來更清晰,擴展性能方面更好。要說沒有設計模式,其實具體的功能還是能實現的,只是具體的靈活的實現還是得靠自己慢慢摸索總結出自己的模式方法。
    在武俠招式上講究無招勝有招,之所以能達到無招的地步其實還是得先建立在一定得招式基礎上,然後忘卻招式,領悟出一套自己的武功應對模式也就是無招。其實編碼設計的技巧也是如此,先得從有設計模式開始,從靈活理解和使用設計模式開始,然後再慢慢從中領會自己的一套編碼設計模式,最後擁有得屬於自己的設計模式思想纔是最重要的。
    一直以來我都非常佩服那些能同時掌握設計模式+算法的大神們,想着向他們靠近。算法體現爲解決問題的思路和把思路用代碼轉換的能力。設計模式則讓項目代碼更具靈活性,擴展性。設計模式(自己的一套)+算法很重要,很重要,很重要!!!

爲什麼要有招

閱讀第三方優秀源碼更容易,快捷。

其實,當時我學設計模式,是因爲看不懂大神們寫的代碼。當時,開發需求是這樣的,Android開發中需要編寫一個圓形圖片的控件。我當時的思路是:
   定義一個類繼承ImageView,複寫父類的onDraw(Canvas paramCanvas)方法,通過創建一個圓Bitmap來繪製畫布。
這個思路確實是能實現這個功能,但我也在網上查閱了別人寫的優秀代碼。他們的實現是這樣的:
//先定義的一個抽象類
 abstract class MaskedImage extends ImageView{
    public abstract Bitmap createMask();  
     protected void onDraw(Canvas paramCanvas) {  
             .......
             Bitmap localBitmap1 = createMask(); 
             ....... 
     }
   }
 //然後再增加一個類來實現具體的功能
   CirCleImage extends MaskedImage {
              .........//實現創建圓形Bitmap
       }
   }
 當時,很不理解,爲什麼實現這個圓形控件功能要多寫一個類CirCleImage ,直接在第一個類MaskedImage實現不就好了。他這樣寫的好處是什麼尼???這深深的吸引我了,後來在學設計模式中找到了答案。

輔助形成自己的一套編程設計模式。(從模式來到模式去)

設計模式分爲3大類——創建型(5種)、結構型(7種)、行爲型(11種)。
設計模式種類確實繁多,這更需要我們在掌握到設計模式的時候,能領悟一套屬於自己的設計模式,在實際開發中能靈活使用屬於自己的設計模式。
終究還是得先從掌握現有的設計模式開始,再從中另外到屬於自己的設計模式,即從模式來到模式去。
我的從模式來的方式:
**1.利用閱讀第三方優秀源碼來掌握和學習每大類型的設計模式,我閱讀的是JDK。**
**2.每大類型中的的設計模式之間相互比較,從比較中,掌握各個模式的優勢。**

設計模式的分類

創建型類別的設計模式
提供了創建什麼(what),由誰來創建(who),以及何時(when)來創建
目的:在一個系統用來創建對象,將類的實例化進行抽象,適用於一個系統中要進行多個不同對象的創建。
共同的主要功能:
1.將系統中所用的具體類的信息進行封裝起來。
2.可以隱藏類的實例是如何被創建和組織的,(可以理解爲代理生成對象)。對外界只提供這個系統生成對象的統一接口,而不能清除知道其具體的實現。
結構型類別的設計模式
主要是對類的結構和類與類之間的關係進行的設計,採用類間或者接口與類間的關聯組合或依賴來實現爲對象添加新的功能
行爲型類別的設計模式
主要是對對象的行爲進行設計,主要解決對象間的聯繫問題也可以理解爲解決對象與對象間的通信。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章