知道設計模式已經很久了,但是一直沒有認真的去系統的學習,這幾天才開始逐漸的學習起來。下面是我學習設計模式的一些心得。要想成為一名優秀的軟體設計師或軟體架構設計師,了解一些設計模式是很有必要的。
我認為學習設計模式的思路如下 一、
基本概念:理解物件導向;理解重用等概念性的東西; 1.
什麼是物件導向? 2.
物件導向的三大機制? ²
封裝:隱藏內部實現; ²
繼承,復用現有**; ²
多型,改寫物件行為 3.
設計原則:
首先學習設計模式,要學會針對介面程式設計,而不是針對實現程式設計;優先使用物件組合而不是繼承。這些原則是我們開發中常用到的,也是我們的**可重用、可擴充套件的一些原則,所以一定要理解。 ²
單一職責原則(
srp):乙個類應該僅有乙個引起它變化的原因。 ²
開放封閉原則(
ocp):可擴充套件,不可修改。(對擴充套件開放,對修改封閉) ²
黎克特制代替原則(
lsp):子類必須能替換它們的基類 ²
依賴倒置原則(
dip):高層模組不應該依賴於低層模組,二者都應該依賴於抽象。
抽象不應該依賴於實現細節,實現細節應該依賴於抽象。 ²
介面隔離原則(
isp):不應該強迫客戶程式依賴於它們不用的方法。
二、學習常用設計模式;
有些設計模式是比較相似的,所以我還是建議大家學習的時候,要先學那些常用的,等這些常用的設計模式學會了,可以應用自如了,再去學其它的會避免在一些相似的模式之間引起混亂。
我說幾個常用的模式:工廠模式、單例模式、**模式、門面模式、策略模式、狀態模式、迭代模式。
我覺得這幾個模式,好理解,而且常用,所以可以先從這幾個模式入手。另外,有時這些模式聯合使用起來效果更好,所以學習設計模式不要太書本化了。
學習設計模式時,首先要先問一下,這個模式幹什麼用的,在什麼情況下用,然後再結合你想象的情況去學習。
三、找一些實際應用的例子,更深刻的理解這些設計模式;
我覺得jive
四
擴充套件去學習更多的設計模式。
學習設計模式 原型設計模式
先想一下既然要建立新的例項,為什麼不直接使用 new 而要設計出乙個原型模式進行例項的複製呢?這是因為 有的時候,我們也會在不指定類名的前提下生成例項,例如像圖形編輯器中拖動現有的模型工具製作圖形的例項,這種是非常典型的生成例項的過程太過複雜,很難根據類來生成例項場景,因此需要根據現有的例項來生成新...
設計模式學習
所有的設計模式都是為了解決變化的問題,通過一定的模式來應對變化,變化應對的原則是開放封閉原則,對修改封閉,對擴充套件開放。為了應對變化,就會新增相應的層次,層次越多,的顆粒就越小,那麼 就越複雜。所以設計時考慮變化和複雜之間的取捨,為了應對變化 需要使用模式,但是又不可以一味應用模式,導致 太複雜。...
設計模式學習
設計模式其實就是一種 思想 就像做菜,一開始學習的人難免會問 我現在學做了幾道菜?其實,真正的精髓不在菜品,而在如何調味,如何選料,備料等 最基本的原理和法則 掌握並熟練應運了這些基本思想,才能真正的完成從 無招 到 有招 再到 無招勝有招 的至深境界。建立型模式 設計模式學習筆記 singleto...