程式設計領域的`設計模式的六大設計原則` + `合成復用原則`(Composite Reuse Principle) ,都是一些很**泛**的思想(它們既可以指這個,也可以代指那個),無法生搬硬套,無法做到很具體的指導。我的建議是,有空多看幾遍、多思考看看怎麼能運用在實際項目中,在未來時**保佑** ...
程式設計領域的設計模式的六大設計原則
+ 合成復用原則
(Composite Reuse Principle) ,都是一些很泛的思想(它們既可以指這個,也可以代指那個),無法生搬硬套,無法做到很具體的指導。我的建議是,有空多看幾遍、多思考看看怎麼能運用在實際項目中,在未來時保佑自己在設計程式時能聯想到即可。
依賴倒置原則(依賴抽象介面,而不是具體對象)
- 它強調了高層次模塊不應該依賴於低層次模塊,而是應該依賴於抽象。這個原則有助於降低類之間的耦合度,提高系統的可維護性和可復用性。
- 依賴倒置原則要求我們將具體的實現類通過介面或者抽象類進行抽象,以便高層次模塊不需要知道低層次模塊的具體實現細節。這樣,當低層次模塊發生改變時,高層次模塊不需要進行任何修改,只需要重新配置依賴關係即可。
單一職責原則(類、介面、方法)
- 一個類(介面、方法)只承擔一個職責;
- 變更引起的風險降低。變更是必然的,如果單一職責原則遵守得好,當修改一個功能時,可以顯著降低對其他功能的影響;
開閉原則 (擴展開放,修改關閉)
- 對已經完成的程式來說,最佳的維護狀態是,只對擴展開放,對修改關閉;
里氏替換原則(基類和子類之間的關係)
- 這個原則的核心思想是,如果一個類繼承自另一個類,那麼子類可以替換父類進行任何操作,前提是不能違反程式的原始行為。這要求子類的方法實現不能違背父類的規範和約束;
- 子類可以擴展父類的功能,但不能改變父類原有的功能;
- 只要父類出現的地方子類就可以出現,而且替換為子類不會出現任何錯誤;
介面隔離原則(介面按照功能細分)
- 要求程式員儘量將臃腫龐大的介面拆分成更小的和更具體的介面,讓介面中只包含客戶感興趣的方法;
- 這個和單一職責原則有點重覆了;
最少知道原則 (類與類之間的親疏關係)
- 最小化許可權;
合成復用原則(Composite Reuse Principle)
- 儘量使用對象組合/聚合,而不是繼承關係達到軟體復用的目的;
- 合成或聚合可以將已有對象納入到新對象中,使之成為新對象的一部分,因此新對象可以調用已有對象的功能;
有些編程語言就沒有繼承概念,只有組合、復用概念,各自的好壞有待辯證吧。