總結下我所學 設計模式

2022-02-12 05:01:07 字數 2221 閱讀 2741

╮(╯▽╰)╭,,,.... 未必正確. 初學者慎重,本文系個人看法. 勿輕易接受.

從聽說-接觸-學習.快半年了吧....

自己感覺設計模式精華在於 乙個解耦合的過程,不必強記,..儘管當時我通讀完了

《大話設計模式》和老外的

看到很多人在講設計模式好處時說 >設計模式可以減少**量啊,.減少重複**..

減少勞動量啊啥的....恕在下不敢苟同.,..

我的理解是設計模式旨在運用一種思想,是前人總結出來的一種在程式中用於分離所描述事物中

的可能存在變化的情況的一種通用解決方案.稱之為模式. 當然這些是基於物件導向語言的三大特性

基礎之上的,(繼承 多型 封裝). 我認為好處在於 使得程式內部模組松耦合)①).從類的角度看高內聚(②).可協作程式設計.

最重要的是增強程式應對可能發生的變化的能力.(③)/對於日後產品公升級,有非常大的好處.

物件導向語言三大特性之一:

封裝:相對過程式語言來講,

繼承:

多型:

設計模式幾大基本原則:

1..開放封閉原則(open-closed principle):      "對於擴充套件是開放的,對於修改是關閉的",但是不大可能完全封閉,乙個好的設計是在不修改源**的情況下,可以擴充套件功能..而實現開閉原則的關鍵就是抽象出超類介面,以隔離可能發生的變化.     在"開-閉"原則中,允許擴充套件具體的實現類,抽象類和介面在"開-閉"原則中扮演著極其重要的角色...即要預知可能變化的需求.又預見所有可能已知的擴充套件...抽象是關鍵!-------但是對於乙個新的問題,如何提取出抽象來隔離這些變化呢?  (遺留問題).

2.黎克特制代換原則(

liskov substitution principle lsp

):這是乙個女人最先提出來的.對於這個原則,我們有一點可以確定,;那就是-->她老公是姓"裡 ",(英文好像是

liskov 

).而且她老人家提出來的:"

乙個軟體實體如果使用的是乙個基類的話那麼一定適用於其子類,而且它察覺不出基類物件和子類物件的區別。也就是說,在軟體裡面,把基類都替換成它的子類,程式的行為沒有變化。

".這個應該是在真正的物件導向語言出現之前提出來的指導思想.! 要不然這麼個東西怎麼好意思說出口..!本來就是人家物件導向語言的特性之一.

3. 依賴倒轉原則:

要依賴抽象,而不要依賴具體的實現..

如果說開閉原則是目標,依賴倒轉原則是到達"開閉"原則的手段..要達到松耦合的設計目標,就應該盡量的遵守依賴倒轉原則.以使得程式間的相互依賴減少.依賴倒轉原則就是要求將類"抽象化"以隔離變化的影響!! 

4.迪公尺特法則(這個跟

系統中的類,盡量不要與其他類互相作用,減少類之間的耦合度

,因為在你的系統中,擴充套件的時候,你可能需要修改這些類,而類與類之間的關係,決定了修改的複雜度,相互作用越多,則修改難度就越大,反之,如果相互作用的越小,則修改起來的難度就越小..

當然也不是僅侷限於修改啦,上面的話有缺陷... 當乙個類與很多類出現直接聯絡的時候,這個類或者是類庫的可復用性也就大大的降低了,lon餘(他媽的這個字打不出來.見笑),和耦合度大大增加,...也就成了我等鳥輩寫的**了.....

5.介面隔離法則:

這個法則與迪公尺特法則是相通的,

迪公尺特法則是目的,而介面隔離法則是對迪公尺特法則的規範..為了做到盡可能小的耦合性,我們需要使用介面來規範類,用介面來約束類.要達到迪公尺特法則的要求/松耦合的設計--->使用介面隔離法則.

注釋 :

①":松耦合:松耦合架構降低整體複雜性和依賴性。松耦合使應用程式環境更敏捷,能更快地適應更改,並且降低了風險。除此之外,系統維護也更方便

②:高內聚:衡量模組獨立性的定性標準是內聚(乙個模組內各個元素彼此結合的緊密程度)

③:運用上面所述的:

1.開放封閉原則(open-closed principle),

2.黎克特制代換原則(liskov substitution principle lsp): 

3. 依賴倒轉原則:....

以應對需求變更.環境變更等變化.....

到睡覺時間了.洗個澡,睡覺! 明天七點起來跑步.

使用者體驗設計學習總結(下)

使用者體驗設計 ued 使用者體驗設計的存在主要是在滿足需求的基礎上更進一步給與使用者一種好的服務 體驗。上一期主要介紹使用者體驗的大致流程操作與內容。關於流程與存在的角色就不過多介紹了 首先,我們從名詞上進行分析可以得出乙個結論 使用者體驗設計 包含了目標感覺動作三部分組成。使用者,這是目標 體驗...

我看設計模式

聽完趙斌講的設計模式後,我感覺對設計模式有了一點兒新的認識。如何看設計模式 1 在看的過程中,一定要隨著它一起思考,把自己當做那個菜鳥,如果大鳥給你出相同的問題,你該怎麼辦。個人見解 2 不管是看圖還是看 都一定要細,對其中的關鍵字或者不同的地方多問幾個為什麼,找出各個模式的不同點。例如 有的地方為...

設計模式總結

http www.chenjiliang.com article view.aspx?articleid 6708 比較 設計模式 常用程度 適用層次 引入時機 結構複雜度 abstract factory 比較常用 應用級設計時 比較複雜 builder 一般 級 編碼時一般 factory me...