設計模式番外篇

對於設計模式,我們都知道,我們需要了解它,逐步的喫透它,不僅僅是爲了應對當前這個激烈競爭的市場環境,在面試時給自己額外加分,而是我們如何在項目中去運用它。知其然,必要知其所以然,在學一個新的技術的時候,有時候我們只是照貓畫虎的用用是不行的,我們需要用額外的手段加深自己的記憶和理解力。

        之前在4g思維密碼中,看到一張圖,介紹如何高效率的吸收自己所學的知識,其中最好的方式是轉教別人/立即應用。雖然我可能在寫這篇博客的時候,對設計模式的理解還是很淺,但學會這種思維模式纔是關鍵,因爲它不僅僅適合設計模式,還有很多領域,我都可以用。

對於設計模式,其實我們不用,我們照樣能實現我們的業務邏輯,照樣能完成任務,就像以前農村割麥子用鐮刀,後來出現了收割機,這樣效率提升了不少了,而且避免了鐮刀在收割中人力,物力的投入,大大提高了效率,但是用收割機你需要金錢的投入,你很不捨得,學習設計模式也一樣,你需要投入大量的精力去理解,但是並不是任何時候都需要用設計模式,一小塊地也沒必要用收割機的去收割(況且別人可能不會去管你的地),設計的使用也是一樣。

對於設計模式,我覺得我們一定要理解透徹面向對象,因爲我覺得那是設計模式的根基,打好根基,有助於很快的理解設計模式。

面向對象的三大特性:繼承,封裝,多態。

繼承:說到繼承,有兩類繼承方式,一種是抽象繼承,一種是實現繼承,對於抽象繼承,其實就是一個家族基因遺傳,每一個有血緣關係的人,對於自己的父親,爺爺都或多或少的有關係,對於繼承的子類,我擁有父類所有非私有的或特有的行爲和變量,但是實例化子類的時候,要先實例化父類。這裏面還有關於靜態屬性的一些知識,放在下一篇關於類加載器進行簡單的探討。實現繼承是,接口定義的方法都是抽象的公共方法,變量都是final類型的,賦予初始值。

封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。 百度百科的定義,對於封裝,其實我能想到的就是整體和部分,一個整體是需要很多單一的東西組成的。比如:人,有眼睛,耳朵,鼻子屬性,有喫,喝,拉,撒動作,所以這些單一的事物,組成了一個類,人。對於封裝的好處,第一,隱藏了類的屬性和方法,二,複用這些屬性和方法,第三,容易理解類的構造,和維護一系列的類。把一個東西零零散散給你好,還是打包給你一個完整的,你要什麼自己去取的好。

多態:允許將子類類型的指針賦值給父類類型的指針。多態是設計模式的核心,設計模式使用多態,使得父類的引用可以代替子類,方法的決定權交給子類的實例。對於多態的狀態,有運行時和編譯時兩種狀態,“成員變量,靜態方法看左邊;非靜態方法:編譯看左邊,運行看右邊”(摘錄)。之前總是不理解爲什麼編譯看左邊,運行看右邊,寫了幾個例子後,就是有時候編譯的時候,會校驗其語法的準確性,運行的時候還是指向子類的實例變量。

     自己簡單的總結了一下,其事沒必要做這些事情,因爲有很多的博客已經寫的非常好了,總之上面圖給出的結論,你這樣才能掌握的更牢靠。








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