在一家面試的時候,被問到了什麼叫做設計模式的六大原則
上網查了查,瞭解到如下原則。
- 首先單一職責原則
首先單一職責原則
簡單講就是一個類只負責一個功能領域中的相應職責,或者可以定義爲:就一個類而言,應該只有一個引起它變化的原因
-
開閉原則
一個軟件實體應當對擴展開放,對修改關閉。即軟件實體應儘量在不修改原有代碼的情況下進行擴展。
-
里氏替換原則
所有引用基類(父類)的地方必須能透明地使用其子類的對象
含義就是,在軟件中將一個基類對象替換成它的子類對象,程序將不會產生任何錯誤和異常,反過來則不成立,如果一個軟件實體使用的是一個子類對象的化,那麼它不一定能夠使用基類對象。 通俗來講:就是子類可以擴展父類的功能,但不能改變父類原有的功能。,是實現開閉原則一大準則。
- 依賴倒置原則
抽象不應該依賴於細節,細節應當依賴於抽象。換言之,要針對接口編程,而不是實現編程
- 接口隔離原則
使用多個專門的接口,而不使用單一的總接口,即客戶端不應該依賴那些它不需要的接口。
每一個接口獨立角色,不幹不該做的事。
- 迪米特原則(最小知識原則)
一個軟件實體應當儘可能少的與其他實體發生相互作用。簡單講,就是應該儘量減少對象之間的交互,如果兩個對象之間不必彼此直接通信,那麼這兩個對象就不應當發生任何直接的相互作用。
註明:其中我們所熟知的單例模式事實上違反了
單一職責這一個設計原則。不只要關心自己的工作,還要維護自己的實例化對象。