大話設計模式讀書筆記 開放 封閉原則

2022-05-07 07:48:10 字數 928 閱讀 8250

人物:小菜,大鳥

事件:小菜考研失敗,同時因為平時沒有關心求職的事,導致也沒找到工作,大鳥就說如果懂得了開閉原則,就不會這樣了

考研:不要一味長時間學習,根據自己的有效學習時間,制定學習計畫,然後雷打不動完成,這是對修改關閉

求職:利用學習計畫之外的休息時間,寫寫簡歷,了解下諮詢,這就是對擴充套件開放

原書作者注:本事件和「開放-封閉原則」對應有些牽強,宣告:全力以赴是應該的,兩手準備也是靈活的處事表現

開放-封閉原則:是指軟體實體(類,模組,函式等)應該可以擴充套件,但是不可修改。

即對擴充套件開放,對修改關閉

開閉原則隨處可見的例子:

1.乙個軟體的版本,能在第乙個版本出來之後,面對新的需求不斷改變,然後又能保持相對的穩定,推出乙個又乙個的版本

2.乙個企業上班,要求工作8小時,每個月可允許3次遲到,遲到者下班補時間,這就是對上班具體時間的修改關閉,對時間制度擴充套件的開放

小菜:那我們就應該在設計的時候,將各種需求考慮全面,能夠應對之後的種種變化

大鳥:那不就成了未卜先知,需求時常會在想不到的地方出現

大鳥:其實開放封閉的原則是說,設計的時候,盡量讓這個類足夠好,寫好後就不要去修改了,如果有新的需求,增加一些類就完事了,以前的類能不動就不動

小菜:這很難做到乙個類寫完就完全不改了吧

大鳥:是的,絕對的對修改封閉是不存在的,總會存在無法封閉的變化,既然無法完全封閉,則設計人員必須對於他的設計模組應對那種變化封閉做出選擇,猜出可能變化的種類,然後構造抽象隔離變化,有的變化很明顯可以提前抽離出來,有的變化如果不明顯無法**,則等變化出現時,立即行動。比如客戶端需要做減法運算,則你就可以把減法類抽出來,變成運算類,然後讓減法類去繼承運算類,這樣,就算之後有了加法類,乘法類,直接繼承運算類就行,增加了新的**而不是修改了已有的**(開放封閉原則的精神所在)

開放封閉原則 大話設計模式

在今天,讀書有時是件 麻煩 事。它需要你付出時間,付出精力,還要付出乙份心境。僅以 大話設計模式 來祭奠那逝去的 開放封閉原則有兩個特性 對於擴充套件是開放的,對於更改是關閉的。無論模組多麼的 封閉 都有一些無法對之封閉的變化。既然不可能完全封閉,技術人員必須對他設計的模組應該對那種變化封閉做出選擇...

讀書筆記 大話設計模式

大話設計模式 的確寫的很不錯。把晦澀解懂的設計模式,講的通俗易懂。邊讀邊用evernote做筆記,把印象深刻的整理了一下。先補習一下uml的圖示法 繼承,介面,組合,依賴,關聯 策略模式 strategy 定義一系列演算法,所有演算法完成的都是相同的工作,只是實現不同。減少演算法與使用類之間的藕合。...

大話設計模式之 開放,封閉原則

1 開放 封閉原則,是說軟體實體 類 模組 方法等等 應該可以擴充套件,但是不可以修改 2 對於擴充套件時開放的,對於更改時封閉的。面對需求的改變,可以保持相對的穩定,從而使得系統可以再第乙個版本後可以不斷的推出新版本 3 無論模組時多麼的封閉,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設...