設計模式 基本原則 滄唯

2022-10-11 02:15:11 字數 837 閱讀 5635

學習一樣東西,我們首先要知道為什麼要學這個,或者說這個東西能起到什麼作用。這樣才能更加有目的、有效率地進行學習。

然後再問為什麼這個東西能實現這樣的效果,從而了解其內部的機制。

最後,再弄清楚怎麼使用,這樣才算真正學會了。

換而言之,把要學習的技能比喻成實現某一功能的函式,那麼了解函式的功能、函式的具體實現以及函式的呼叫方法,就算懂得了這個函式。

一、為什麼要學設計模式?

學習設計模式是為了提高軟體**的健壯性、可修改性和擴充套件性、提高開發的效率、方便程式設計師設計時的互相交流。個人覺得,首要的是擴充套件性。

事實上,如果設計一款軟體僅僅是為了實現功能這一目的,我們根本不需要什麼設計模式,只需要把**寫上去,可能**的結構一團糟,但是能執行就可以了。那麼請思考一下這樣設計出來的軟體和按照正規設計模式設計出來的軟體在設計和維護上的優缺點對比,就不難理解上面那句話了。

二、設計模式通過怎樣的內部實現提供了這些優點?

設計模式的原則(設計模式應當遵循的基本規則,這樣才能保證設計模式能達到預期效果)

總原則:開閉原則。對擴充套件開發,對修改關閉。

單一職責原則——要方便擴充套件,就要盡可能地使每個類的功能單一化,個人理解。

黎克特制替換原則——子類能夠替換父類,才能保證擴充套件性。

依賴倒轉原則——寫**要用到具體類時,不與具體類進行互動,而是與它的上層介面進行互動,這樣之後要進行擴充套件時,就不需要更改這部分互動的**。

介面隔離原則——每個介面不應存在子類用不到卻又必須實現的方法,(否則該介面視為過於複雜,相當於有額外的功能),否則該介面應當拆分。

迪公尺特法則(最少知道法則)——乙個類對自己依賴的類知道的越少越好,否則當被依賴的那個類進行擴充套件時,耦合度太高,會影響到當前類。

設計模式基本原則

設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...

設計模式基本原則

1 單一職責原則 類的職責要單一 不要將太多的職責放到同乙個類當中去。eg 資料結構職責類和演算法行為都放在乙個類。我們應該把資料結構和行為分開。2 開閉原則 乙個軟體實體應該對擴充套件開放,對修改關閉。可變性封裝 3 黎克特制代換原則 可以接受基類物件的地方必然要可以接受子類的物件。4 依賴倒轉原...

設計模式基本原則

設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...