三大特徵編程
封裝: 一個類封裝了數據以及操做數據的代碼邏輯體。定義了數據的可訪問屬性(私有、公有)架構
繼承 : 可讓一個類型獲取另一個類型的屬性的方式。分爲實現繼承和接口繼承框架
多態 : 類實例的一個方法在不一樣情形下有不一樣的表現形式,即不一樣的外在行爲。使具備不一樣的內部結構的對象能夠共享相同的外部接口。 .net
六大原則設計
單一功能原則 : 每一個類型(包括接口和抽象)功能要求單一,只負責一件事情。下降代碼複雜度,增長可讀性可維護性,只有在邏輯足夠簡單、類中的方法足夠少時才能夠在代碼級別上違反單一職責原則。職責被分解爲不少細粒度的職責,程序已經寫好的狀況下,分解類開銷大(分解意味着零散,加載變的複雜,閱讀也變得複雜),修改類雖然違反單一職責原則,可是是個不錯的選擇。對象
LSP原則是:只要父類能出現的地方子類就能夠出現,並且替換爲子類還不產生任何錯誤或異常。怎麼作到:blog
子類重載父類方法,方法的前置條件要比父類更寬鬆繼承
子類實現父類的抽象方法時,方法的後置條件要比父類更嚴格。接口
單一職責原則:職責單一。開發
里氏替換原則:不要破壞繼承體系結構。
依賴倒置原則:面向接口編程
接口隔離原則:設計接口時要精簡單一。
迪米特原則:下降耦合
這五個原則都是開源原則的注意事項,開閉原則是一切編程的出發點和目的
參考:https://blog.csdn.net/seek24/article/details/13293947