OO五大原則:編程
一 單一職責原則:
類的單一職責是說一個類應該只作一件事情,若是類中某個方法或屬性與它所要完成的職責無關或是爲了完成另外的職責那麼這樣的設計就不符合類的單一職責。而這樣的設計的缺點是下降了類的內聚性加強了類的耦合性,另一個很客觀的問題是當咱們使用這個類時把咱們本來不須要的功能也帶到了咱們的代碼中,從而是文件變大,增長內存開銷。包括裏面定義的變量越多越庸腫.設計
二 開閉原則
根據開閉原則,在設計一個軟件系統模塊(類,方法)的時候,應該能夠在不修改原有的模塊(修改關閉)的基礎上,能擴展其功能(擴展開放)。對象
三 里氏替換原則繼承
子類應當能夠替換父類並出如今父類可以出現的任何地方接口
繼承而且覆蓋超類方法的時候,子類中的方法的可見性必須等於或者大於超類中的方法的可見性,子類中的方法所拋出的受檢異常只能是超類中對應方法所拋出的受檢異常的子類。內存
四 依賴倒置原則編譯
DIP原則其實強調的是:不要讓不常常發生變化的部分去依賴於常常發生變化的部分。簡言之面向接口,或抽象編程。基礎
即:要依賴於抽象,不要依賴於具體。簡單的說,依賴倒置原則要求客戶端依賴於抽象耦合。原則表述:抽象不該當依賴於細節;細節應當依賴於抽象;要針對接口編程,不針對實現編程。變量
五 接口隔離原則擴展
使用多個專門的接口比使用單一的總接口要好。
一個類對另一個類的依賴性應當是創建在最小的接口上的。
一個接口表明一個角色,不該當將不一樣的角色都交給一個接口。沒有關係的接口合併在一塊兒,造成一個臃腫的大接口,這是對角色和接口的污染。
面向對象三大特性:
封裝:把數據和操做數據的方法綁定起來,對數據的訪問只能經過已定義的接口。面向對象的本質就是講世界描繪成一系列徹底封閉的對象。編寫類,就是對數據和數據操做的封裝。是其餘特性的基礎。實現單一職責原則。
繼承:從已知類獲得繼承信息建立新類的過程。繼承讓變化中的軟件系統有必定的延續性,繼承也是封裝中可變因素的重要手段。
多態:容許不一樣子類型的對象對同一消息做出不一樣的響應,簡言之:用一樣的對象引用調用一樣的方法可是作了不一樣的事情。多態分爲編譯時多態和運行時多態。方法重載就是編譯時多態。運行時多態是面向對象的精髓。實現多態的條件:1.方法重寫,2對象造型。父類引用子類對象。多態是開閉原則,面向接口和抽象編程依賴倒置,里氏替換,接口隔離的基礎。
2016-08-22