設計原則的學習心得與體會

2021-10-09 13:17:29 字數 1359 閱讀 9049

一共有七大設計原則,分別為:

1:開閉原則

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

即:不修改原有實現類,而是寫新的實現類。

缺點:導致**臃腫。

2:依賴倒置原則

高層(呼叫層)模組不應該依賴底層模組,二者都應該依賴其抽象。抽象不應該依賴細節,細節應該依賴抽象。

即:要面向介面程式設計,先頂層再細節來設計**結構。

倒置:先框架,後細節。

3:單一職責原則

職責單一,乙個class/inte***ce/method只負責一項職責。

4:介面隔離原則

用多個專門的介面,而不使用單一的臃腫的介面,客戶端不應該依賴它不需要的介面。注意以下幾點:

乙個類對乙個類的依賴應該建立在最小的介面之上。

建立單一介面,不要建立龐大臃腫的介面。

盡量細化介面,介面中的方法盡量少(不是越少越好,一定要適度)。

介面隔離原則符合我們常說的高內聚低耦合的設計思想。

5:迪公尺特原則(又叫最少知道原則)

主要強調只和朋友交流,不和陌生人說話。

出現在成員變數、方法的輸入、輸出引數中的類都可以稱之為成員朋友類,而出現在方法體內部的類不屬於朋友類。

6:黎克特制替換原則

理解為乙個軟體實體如果適用乙個父類的話,那一定是適用於其子類,所有引用父類的地方必須能透明地使用其子類的物件,子類物件能夠替換父類物件,而程式邏輯不變。

引申含義:子類可以擴充套件父類的功能,但不能改變父類原有的功能。

子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法。

子類中可以增加自己特有的方法。

當子類的方法過載父類的方法時,方法的前置條件(即方法的輸入/入參)要比父類方法的輸入引數更寬鬆。

當子類的方法實現父類的方法時(重寫/過載或實現抽象方法),方法的後置條件(即方法的輸出/返回值)要比父類更嚴格或相等。

7:合成復用原則

指盡量使用物件組合(has-a)/聚合(contanis-a),而不是繼承關係達到軟體復用的目的。

繼承我們叫做白箱復用,相當於把所有的實現細節暴露給子類。組合/聚合也稱之為黑箱復用,對類 以外的物件是無法獲取到實現細節的。

聚合、組合

體會

學習設計原則是學習設計模式的基礎。在實際開發過程中,並不是一定要求所有**都遵循設計原則,我們要考慮人力、時間、成本、質量。不要刻意追求完美,而是在適當的場景遵循設計原則,體現的是一種平衡取捨,從而幫助我們設計出更加優雅的**結構。

斷點續傳學習心得與體會

public void doclick view v case r.id stop public class downserivce extends service else if stop action.equals intent.getaction return super.onstartcom...

C語言學習心得與體會1

可能是我的自學能力不夠強,在我自學完陣列之後,發現題目還是不會刷,並未熟練掌握陣列的實際應用,但是不會像以前一樣寫資料較多的題目時會定義太多符號,現在乙個陣列就搞定,這讓我重拾信心。在通過老師的課堂詳細講解之後,我對陣列的了解更深一步了。我嘗試著刷陣列的題目,從剛開始連陣列的定義 賦值與輸出都不熟悉...

指標學習心得與理解

在c語言的學習過程中,指標是相當重要的一部分,學好指針對c的學習有很重要的意義。指標和記憶體 如果說記憶體相當於街道,那麼位址就相當於位於街道中房子的房號。乙個位元組 8bit 包含乙個位址。記憶體中每乙個位置都包含乙個獨一無二的位址標識,而每乙個位置都包含乙個值。p分別作為左值和右值時具有不同的意...