初讀設計模式,給我的感覺就是「深奧」,「天馬行空」,自己基礎不紮實。
於是上網找了找方法:
參考:該如何去讀設計模式
設計模式——最熟悉的陌生人。
很多人應該都有這種感受,早就知道設計模式,也能隨口說出幾種,但是不知道每種是怎麼回事。或者說只知道工廠模式等幾個常用,簡單的。估計那也是靠記憶,而不是真正的理解。
我也有這種親身體會,在好幾年之前就知道設計模式。之前也一直抽時間學,但總是學了就忘。而且學習過程很枯燥,完全是背誦式的記憶那些類圖,不是真正的理解,更別提應用了。
設計,就是為了更好的應對變化。沒畢業時候不知道軟體系統怎麼會有變化,但是工作之後慢慢就會發現,變化,那叫乙個天馬行空。。。
一提到「設計」,大部分人可能會直接想到設計模式,而且是23種設計模式。其實這是錯誤的。其實學會設計、應用設計,應該分為四個層次:
2.1 物件導向
首先要了解物件導向,什麼是物件導向?什麼是封裝、繼承和多型,以及三個特點的表現形式。基礎很重要。
要想充分了解物件導向,三個特點,最好還是按部就班的參考一本權威書籍,看看書上說的你是不是真的理解。看看繼承和多型的表現形式你是否都知道。
如果沒按部就班看過書,就不要以為自己都會了。借用某相聲演員一句話:「你以為你以為的就是你以為的?」。。。
2.2 抽象與具體
如何更好的解決「變化」問題?答案是「提取抽象、隔離具體」。
什麼是「抽象」? 抽象就是不變的東西,乙個資料表的操作,總會有增刪改查,把他們作為介面,這是不變的。
什麼是「具體」? 具體是實際執行的,乙個資料表的增刪改查,用sqlserver、access還是oracle?可能會有變化。
我們應該依賴於抽象程式設計,而不是依賴於具體程式設計。應該把程式中的共性抽象出來,並且把具體實現的部分隔離開來,讓他們都依賴於抽象,並且互不影響。這其實就是設計。
只有理解了「抽象」、「具體」、「隔離」這幾個詞兒,你才能真正理解設計模式。否則就別指望。
2.3 solid五大原則
系統設計的5大原則,簡寫分別是s、o、l、i、d。
對於以上5大原則,此處不詳細解釋,有興趣的可以查閱《你必須知道的.net》第二版,裡面講的非常詳細。
如果詳細分析這5大原則,其實他們都是圍繞著「提取抽象、隔離具體」來的。
2.4 設計模式
最後才是設計模式,設計模式其實是一些工具而已。
是「術」,不是「道」。如果你不明白以上那些「道」,而直接去學「術」,肯定是學一次忘一次。
在看每個設計模式的時候,你都要去向著這個方向去思考:它是不是提取了抽象、分離了具體、依賴於抽象、封裝了具體? 這樣一來,你就會明白了。
《大話設計模式》初讀理解記錄
模版方法模式 既是將相同的部分放在父類,而又將不同的部分使用虛方法,再在子類中實現那些不同的地方。外觀模式 即建立乙個中間類,把需要實現的東西放在中間類中實現,而外部客戶 主程 只要操作中間類的方法即可,修改時也只是修改中間類方法與增加類,可以不用動主程。模式 竟然忘了什麼名字 先建立乙個不能實現任...
設計模式(初)
一 設計模式的分類 1.根據目的分類 1 建立型模式,此類模式主要用於建立物件。工廠模式,建造者模式等等 2 結構型模式,此類模式主要用於處理類或物件的組合 介面卡模式,橋接模式等等 3 行為型模式,此類模式主要用於描述類或物件如何 互動和怎樣分配職責。職責鏈模式,命令模式等等 注 碰到問題首先匹配...
初遇設計模式
今天開始學設計模式了。用的是程杰老師寫的 大話設計模式 在網上搜了一下這位老師的資料,簡單的了解一下這位大牛。那麼什麼是設計模式?design pattern 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易...