設計模式(3) OOP原則

2021-09-24 12:18:22 字數 906 閱讀 2998

從最開始接觸的python到現在的c#,這些都是物件導向的程式語言,那麼什麼是物件導向程式設計呢?在最開始學習python的時候,一直都在學習基本的資料結構,依然是面向過程程式設計,很難對程式語言有較深的理解,在學習c#的時候,我漸漸開始接觸類、介面等概念,然而真正開始理解並應用這些概念可花費了不少時間,隨後我也漸漸發現,oop技術的強大之處與魅力所在。

在此總結一下物件導向程式設計的好處與部分原則。

物件導向程式設計(object oriented programming)的好處:可維護、可拓展、可復用和靈活性好。

物件導向程式設計的原則一——單一職責原則(single responsibility principle) :乙個類盡量只執行乙個功能,分離類的不同功能讓它們彼此間不易受干擾。(要養成單一職責原則的編碼習慣,在觀察大佬重構**的時候,很大部分工作就是在分離類,每個類只做對應的一件事)

物件導向程式設計的原則二——開放封閉原則(open close principle):對擴充套件開放(open for extension),對更改封閉(closed for modification),在程式設計時,設計人員要提前猜測最有可能發生變化的地方,並設計構造抽象來隔離那些變化,在面對需求時,就可以做到增加新**而不是更改現有**。

物件導向程式設計的原則三——依賴倒置原則(dependence inversion principle) :抽象不應該依賴細節,細節應該依賴於抽象,這句話有些繞口,換句話說,就是要針對介面程式設計,而不要針對實現程式設計,程式設計各大功能模組都應該針對介面設計,而不是針對具體的實現。

物件導向程式設計的原則四——黎克特制替換原則(liskov substitution principle):子類必須能夠替代他們的父類。只有當子類可以替代父類,軟體單位的功能不受影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。正是由於子型別的可替代性才使得使用父類型別的模組在無需修改的情況下就可以拓展。

OOP設計原則

乙個類或者模組,應該僅有乙個引起其變化的原因。如果乙個類承擔的職責過多就等於將這些職責耦合在一起,乙個職責的變化就有可能影響其他職責的能力。缺點 會造成類的數量增多。破壞了封裝的原則 若將目標類中將含有私有資料訪問邏輯的業務行為分離出去,則會造成外部類或方法訪問目標類的私有資料,破壞封裝的特性。例子...

OOP程式設計原則與設計模式(1)

johnny.deng pbp obp oop的特徵 pbp 基於過程 函式 域與生命週期的概念 函式過載 函式模板 異常處理 范型演算法。obp 基於物件 類 介面 類的生命週期 類模板。oop 物件導向 繼承 多型。三個概念步步深入,後者包括前者。其目的是實現軟體開發的可重用性,解決軟體危機 軟...

設計模式3 原則

大話設計模式 的第3,4,5章沒有聊到具體的模式,而是講到了幾個原則。這幾個原則特別有助於我理解設計模式,所以總結在此篇。2.1 單一職責原則單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。2.2 理解 對於遊戲邏輯,抽象成二位陣列的判斷 對於介面就是窗體類的變化。這樣的好處是,如...