1. 程式人生 > >面向對象的三大特征、六個原則

面向對象的三大特征、六個原則

體系 之間 實現類 情況 對象 定義 通過 基於 .net

三大特征

封裝: 一個類封裝了數據以及操作數據的代碼邏輯體。定義了數據的可訪問屬性(私有、公有)

繼承 : 可以讓一個類型獲取另外一個類型的屬性的方式。分為實現繼承和接口繼承

多態 : 類實例的一個方法在不同情形下有不同的表現形式,即不同的外在行為。使具有不同的內部結構的對象可以共享相同的外部接口。

六大原則

單一功能原則 : 每個類型(包括接口和抽象)功能要求單一,只負責一件事情。降低代碼復雜度,增加可讀性可維護性,只有在邏輯足夠簡單、類中的方法足夠少時才可以在代碼級別上違反單一職責原則。職責被分解為很多細粒度的職責,程序已經寫好的情況下,分解類開銷大(分解意味著零散,加載變的復雜,閱讀也變得復雜),修改類雖然違反單一職責原則,但是是個不錯的選擇。

開放封閉原則:一個軟件實體應該對擴展開發,對修改關閉。可擴展但是不可更改。 核心:用抽象構建框架,用實現類實現擴展。 替換原則(裏氏代換原則):子類能夠替換父類,出現在父類能夠出現的任何地方 當使用繼承時,盡量遵循歷史替換原則,盡量不要去重寫或者重載父類的方法,以免破壞整個繼承體系的 。因為父類在定義或者實現某些方法時,規定了必須遵守的規則和契約。

LSP原則是:只要父類能出現的地方子類就可以出現,而且替換為子類還不產生任何錯誤或異常。怎麽做到:

子類重載父類方法,方法的前置條件要比父類更寬松

子類實現父類的抽象方法時,方法的後置條件要比父類更嚴格。

依賴原則:具體依賴抽象,上層依賴下層。核心思想是面向接口編程。 兩個模塊之間依賴的應該是抽象(接口或抽象類)而不是細節。細節(實現類)依賴於抽象。 依賴原則基於的事實:相對於實現類的多變性,抽象的東西要穩定得多,基於抽象的構架也比基於實現的架構更加穩定,且擴展性更高 接口分離原則:模塊間要通過具體接口分離開,而不是通過類強耦合。例如A類對B類的依賴,可以抽象接口I,B實現I,A類依賴I來實現。但是抽象接口必須功能最小化(與單一功能原則有點不謀而合)。 迪米特原則:最小依賴原則,一個類對其他類盡可能少的了解,只與朋友通信。降低耦合

單一職責原則:職責單一。

裏氏替換原則:不要破壞繼承體系結構。

依賴倒置原則:面向接口編程

接口隔離原則:設計接口時要精簡單一。

迪米特原則:降低耦合

這五個原則都是開源原則的註意事項,開閉原則是一切編程的出發點和目的

參考:https://blog.csdn.net/seek24/article/details/13293947

面向對象的三大特征、六個原則