極客班C 設計模式第一周課堂筆記 設計原則

2021-07-22 16:24:05 字數 799 閱讀 4315

軟體設計的目標是抵禦變化,方法是提高復用性。

①依賴倒置原則(dip)

高層模組(穩定)不應該依賴底層模組(變化),二者都應該依賴於抽象(穩定);抽象不應該依賴於實現細節,實現細節應該依賴抽象。

②開放封閉原則(ocp)

對擴充套件開放,對更改封閉

類模組應該是可擴充套件的,但是不可修改。

以擴充套件的方式應對需求變更。

③單一職責原則(srp)

乙個類應該是僅有乙個引起它變化的原因,變化的方向隱含著類的責任。該職責是為避免過於複雜。

④listov 替換原則(lsp)

子類必須能夠替換它們的基類(is-a)

以繼承表達型別抽象

⑤介面隔離原則(isp)

不應該強迫客戶程式依賴它們不用的方法

介面應該小而完備

⑥優先使用物件組合,而不是類繼承

類繼承通常是「白箱復用」,物件組合通常是「黑箱復用」。

繼承在某種程度上破壞了封裝性,子類父類耦合度高;而物件組合則只要求被組合的物件具有良好定義的介面,耦合度低。

⑦封裝變化點

使用封裝來建立物件之間的分界層,讓設計著可以在分界層的一側進行修改,而不會對另一側產生不良的影響,從而實現層次間的松耦合。

⑧針對介面程式設計,而不是針對實現程式設計。

此條與①對應,不將變數型別宣告為某個特定的具體類,而是宣告為某個介面。客戶程式不需獲知物件的具體型別,只需知道物件的介面。

減少系統中各部分的依賴關係,從而實現「高內聚、松耦合」的型別設計方案。

介面標準化是產業強盛的標誌。

極客演算法第一周

1.兩數之和 方法一 暴力法 兩層迴圈 時間複雜度 o n 2 空間複雜度o 1 方法二 兩遍雜湊表 第一遍構造雜湊表,第二遍找答案 時間複雜度 o n 空間複雜度o n 方法三 一遍雜湊表 最優解 時間複雜度 o n 空間複雜度o n 11.盛最多水的容器 方法一 暴力法 兩層迴圈 時間複雜度 o...

《管理概論》第一周 課堂筆記與學習心得

課堂筆記 一 管理及其功能 1.管理是實現目標的一種手段,是由計畫 組織 領導 控制等職能組成的過程 2.管理的表現形式 吃飯應酬 公關 開會討論 決策 計畫組織 分配資源 與人談話 做思想工作 審核簽字 監督把關 考核獎懲 激勵 3.管理的工作內容 分析公關 協調組織與組織之間關係 決策 協調目標...

極客班STL與泛型程式設計 第一周學習筆記

續前節template簡單分類 模板是指允許函式或類 物件 通過泛型的形式進行表現或執行。對應不同的型別 types 都可以正常工作,而無需每個型別一套程式。例項化分為顯式例項化和隱式例項化,顯示例項化是指在 中明確指明使用哪種型別進行例項化,例如前節中complexc1 1.1,2.2 隱式例項化...