我們先來回顧下策略模式,一般策略模式主要滿足以下情況:
1: 多個物件(類)只是在其特徵或表現出來的行為不同,執行時需要動態來分別執行它們。
2:需要在不同情況下,呼叫乙個物件(子類)來實現不同的演算法。
3:需要完全隱藏具體策略(演算法)的實現。
策略模式的優缺點主要如下:
優點:1:提供一套繼承的方法,能夠發揮其繼承(**重用)的優點,而且針對自身還可以有其靈活的實現。
2: 避免程式多重條件的判斷,靈活性好。
3: 高內聚,低耦合。
缺點: 1: 針對新的策略(實體)需要產生新的類,從而導致隨著不同類的需求而使維護類過多。
回顧就結束了,接下來將分別談談設計模式的三大原則:
單一職責原則:從名稱上就可以知道它是什麼意思。我這裡也就把我對其在現實編碼過程中的理解說說吧。
當我們建立乙個類時,你能夠想到的多於乙個動機去改變類,那麼這個類就多乙個職責。說通俗點就是,我們看到一輛汽車的時候,我們首先想到它能用來駕駛,能夠跑。
看到這些時候我們還可以想到它還可以載人(物)etc。那麼汽車的駕駛、跑、載人(物)就是其三個職責。
開放 - 封閉原則:是物件導向開發的核心原則。簡單點說就是對**基類(父類)盡量封閉,對子類繼承擴充套件完全開放。
當我們碰到很多設計的時候,並不是需求一來就是齊全的,需求往往隨時間變化而變化,也就是說,我們在初始開發設計需求的時候,盡量抽出我們需要封閉的地方,當然我們不可能一下子就想到,但熟話說的好,在乙個地方第一次跌倒不是你的錯,但第二次、三次呢? 其實開放-封閉原則就是這個道理,我們在設計時候如果剛開始方向錯誤,我們可以快速的糾正設計,把我們需要封閉的地方找出,從而來達到靈活的擴充套件。
fyun在對這個原則的在設計說的理解就一點,找到相通點,也就是我們需要封閉的地方,然後再此基礎上作出開放的擴充套件設計。
依賴倒轉原則:這個原則原話解釋是「抽象不應當依賴於細節,細節應當依賴於抽象」,解釋為:
a: 高層模組不應當依賴於低層模組。兩個都應該依賴於抽象。
b: 抽象不應當依賴於細節,細節應當依賴於抽象
聽起來相當的繞口,而且晦澀難懂。我在該原則上花了好久,這裡就把我對該原則的白話解釋下吧:
個人理解就是:我們在模組設計時候應當將不同模組各自分離(這是你選擇設計模式時候能夠達到的)但考慮各個模組之間的聯絡(通訊)我們則需要採用乙個標準(可以是介面,抽象類(前面寫的簡單工廠模式)來進行中間的定義,不管我們對那個模組的開發,他們都是依賴於我們定製的標準來開發,這樣,我們在模組的銜接上就能夠在其中乙個模組發生問題的基礎上,可以只需要更新(糾正)該模組即可,而不需要我們去更新其他的模組。
講了三大原則,我這裡就簡單說下乙個原則:黎克特制代替原則:一句話,就是子類必須能夠替換掉他們的父類(基類)。白話說就是,父類的方法、屬性等子類必須能夠全部擁有,而子類的特性和方法,父類不一定需要有。就這麼簡單。
我們在平時設計的時候,盡量遵循三大原則來進行設計,這樣將對我們的開發模式會得到很好的應用,熟話說:無規矩不成方圓。就是這個道理。
接下來我們將開始乙個新的開發模式的講解:裝飾模式(decorate)
設計模式之6大原則
軟體程式設計的總原則 高內聚,低耦合。提高 的復用率 耦合的方式 依賴,關聯,組合,聚合等 設計模式之6大原則 1.單一職責原則 乙個類只負責乙個功能領域中的相應職責。是實現高內聚低耦合的指導方針。2.裡式替換原則 所有引用基類的地方必須能透明地使用其子類的物件。子型別必須能夠替換掉它們的父型別 既...
設計模式的六大原則之三(依賴倒置原則)
核心思想 依賴於抽象 就是對介面程式設計,不要對實現程式設計 高層模組不應該依賴低層模組,二者都應該依賴其抽象 抽象不應該依賴細節 細節應該依賴抽象。以抽象為基礎搭建起來的架構比以細節為基礎搭建起來的架構要穩定的多。抽象指的是介面或者抽象類,細節就是具體的實現類,使用介面或者抽象類的目的是制定好規範...
設計模式之六大原則
無規矩不成方圓,同樣的設計模式也有其內定的一些規則,這些規則使得我們更加方面的使用設計模式的各種模式。以下簡介六個原則 1 單一職責原則 定義 就乙個類而言,應該僅有乙個引起它變化的原因。解釋 如果乙個類承擔的職責過多,則就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責...