大話設計模式總結 第一遍 (部分1)

2021-07-26 13:47:30 字數 1367 閱讀 8066

感受設計演變過程中所蘊含的大智慧型,體會樂與怒的程式人生中值得回味的一幕幕。

設計模式(designpattern)是人們經過反覆使用,結合**設計經驗總結出來的一套理論。其主要目的是通過封裝、繼承、多型保證**的安全性,讓人們更容易理解,並且提高**的可重用性。為此利用設計模式編寫的**真正實現了工程化。就像蓋房子一樣,設計模式是軟體工程的基石脈絡。

下面讓我來解釋大話設計模式中總結的幾種設計模式。

這個模式本身很簡單而且使用在業務較簡單的情況下。一般用於小專案或者具體產品很少擴充套件的情況(這樣工廠類才不用經常更改)。

它由三種角色組成:

工廠類角色:這是本模式的核心,含有一定的商業邏輯和判斷邏輯,根據邏輯不同,產生具體的工廠產品。

抽象產品角色:它一般是具體產品繼承的父類或者實現的介面。由介面或者抽象類來實現。

具體產品角色:工廠類所建立的物件就是此角色的例項。

策略模式定義演算法家族,分別封裝起來,讓他們之間可以相互替代,讓演算法的變化不會影響到使用演算法的客戶。

策略模式是一種定義乙個系列演算法的方法,使得所遇的演算法完成的都是相同的工作,只是實現不同,也就是說:它可以以相同的方式呼叫所有的演算法,保證了各種演算法與使用演算法類之間的耦合。

含義:就乙個類而言,應該僅有乙個引起他變化的原因。

軟體設計真正要做的許多內容,就是發現物件的職責並把那些職責相互分離。如果你能夠發現兩個即以上的物件去控制同乙個類的變化,那麼這個類就有多於乙個的責任。

含義:是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。

開放封閉原則下的設計能面對需求的改變求可以保持相對穩定,從而使得系統可以在第乙個版本後不斷推出新的版本。

實際生活中,無論模組是多麼封閉,都會有一些無法對之封閉的變化,既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪些變化封閉做出選擇。他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離哪些變化。當變化發生時立即採取行動,在最初編寫**時,假設變化不會發生。當變化發生時,我們就建立抽象來隔離以後發生的同類變化。面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。

高層模組不要依賴低層模組;抽象不應該依賴細節,細節應該依賴與抽象。就是要針對介面程式設計,不要對現實程式設計。

含義:動態地給乙個物件新增一些額外的職能,就增加功能來說,裝飾模式比生成子類更為靈活。

用自己的話就是可以將所需的功能按正確的順序串起來執行。

含義:為其他物件提供一種**以控制對這個物件的訪問。

也就是說,在某些情況下,乙個物件不適合或者不能直接引用另乙個物件,而**物件可以在客戶端和目標物件之間起到中介的作用。這樣**(媒人)既起到了中介作用(送禮物),又能保護目標物件(求婚人)。

好了,今天就說這麼多了,剩下模式的明天再解釋。

程式設計是一門技術,更是一門藝術。

第一遍部落格

踏入程式猿一年的感想 想著現在,回憶已前,實在是好的太多太多了,但總感覺有點不足 常常在想人都是這樣的,都想往高處走 但是你要有這個能力才行。心總是在動盪,但最終還是要學會怎麼去改變,改變自己!2014年人生的乙個起點,當時還在工廠上班對於現實的不滿,工作中種種不順,不屈服現在的狀態,想在後面找到新...

CSDN第一遍文章

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 markdown編輯器使用指南儲存 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,...

自考第一遍學習

剛開始了解自考,感覺自考很難,一考十三門,加上有免考的,差不多十一科,加上沒有老師講,自己學習。當我一點一點接觸自考,進入自考委員會,感覺自考也就是那樣。接下來我就說說自考第一遍學習給我的感受,自考第一遍學習的目的是為了,了解一本書的大概知識,構建框架,是幫助我們更好的了解課本,在這一階段,有很多小...