三大特性是:封裝,繼承,多態
封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。封裝是面向對象的特征之一,是對象和類概念的主要特性。 簡單的說,一個類就是一個封裝了數據以及操作這些數據的代碼的邏輯實體。在一個對象內部,某些代碼或某些數據可以是私有的,不能被外界訪問。通過這種方式,對象對內部數據提供了不同級別的保護,以防止程序中無關的部分意外的改變或錯誤的使用了對象的私有部分。
繼承是指可以讓某個類型的對象獲得另一個類型的對象的屬性的方法。它支持按級分類的概念。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴展。 通過繼承創建的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現。繼承概念的實現方式有二類:實現繼承與接口繼承。實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力;接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;
多態就是指一個類實例的相同方法在不同情形有不同表現形式。多態機制使具有不同內部結構的對象可以共享相同的外部接口。這意味着,雖然針對不同對象的具體操作不同,但通過一個公共的類,它們(那些操作)可以通過相同的方式予以調用。
五大基本原則
單一職責原則SRP(Single Responsibility Principle)
是指一個類的功能要單一,只負責處理同一類的操作。強調的是職責的分離。
其核心的思想是:一個類,最好只做一件事,只有一個引起它變化的原因。低耦合、高內聚的體現
實例: http://www.cnblogs.com/adam/archive/2008/04/18/1159251.html
開放封閉原則OCP(Open-Close Principle)
擴展性方面應該是開放的而在更改性方面應該是封閉的。封裝變化、降低耦合,抽象和多態的應用
對擴展開放,意味着有新的需求或變化時,可以對現有代碼進行擴展,以適應新的情況。
對修改封閉,意味着類一旦設計完成,就可以獨立完成其工作,而不要對類進行任何修改。
實例: http://www.cnblogs.com/adam/archive/2008/04/18/1159280.html
里氏替換原則(the Liskov Substitution Principle LSP)
子類應當可以替換父類並出現在父類能夠出現的任何地方。繼承的體現
實例: http://www.cnblogs.com/sunwei2012/archive/2010/03/10/1682415.html
依賴原則(the Dependency Inversion Principle DIP)
具體依賴抽象,上層依賴下層。
假設B是較A低的模塊,但B需要使用到A的功能,這個時候,B不應當直接使用A中的具體類,而應當由B定義一抽象接口,並由A來實現這個抽象接口,B只使用這個抽象接口,這樣就達到
了依賴倒置的目的,B也解除了對A的依賴,反過來是A依賴於B定義的抽象接口。
實例: http://www.cnblogs.com/liuhaorain/p/3747470.html#title_2
接口分離原則(the Interface Segregation Principle ISP)
模塊間要通過抽象接口隔離開,不通過具體的類關聯,降低耦合度
如果類的接口定義暴露了過多的行為,則說明這個類的接口定義內聚程度不夠好。換句話說,類的接口可以被分解為多組功能函數的組合,每一組都服務於不同的客戶類,而不同的客戶類可以選擇使用不同的功能分組。
實例: http://www.cnblogs.com/gaochundong/p/interface_segregation_principle.html
