1. 程式人生 > >面向物件的思想、面向物件的三大特性,五大原則

面向物件的思想、面向物件的三大特性,五大原則

面向物件的思想、面向物件的三大特性,五大原則

面向物件就是:比如說,我想買一個電腦,我會告訴另一個人去給我買一個電腦,他就會坐車去電子商城去給我買電腦,買完電腦又給我坐車帶回來交給我手中。這買電腦的期間的事情,電腦的牌子、價格、效能、跑去買、再帶回來,我都不用管不用去自己做。我只坐在這裡告訴他我要電腦,最後他把電腦給我帶回來就好了。從一個實現著轉變成一個領導者,在Java中就是我想買電腦就呼叫一個買電腦的方法()。 用C語言來作比較,寫C語言的時,我想買一個電腦,我完完全全要自己親力親為,自己去,自己買,自己帶回來。寫程式碼時就是整個過程都是自己完完全全用程式碼實現的

三個基本特徵:封裝,繼承,多型;

封裝:把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏,這就是封裝。封裝是面向物件的特徵之一,是物件和類概念的主要特性。簡單的說,一個類就是一個封裝了資料以及操作這些資料的程式碼的邏輯實體。在一個物件內部,某些程式碼或某些資料可以是私有的,不能被外界訪問。通過這種方式,物件對內部資料提供了不同級別的保護,以防止程式中無關的部分意外的改變或錯誤的使用了物件的私有部分。

繼承:繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力。通過繼承建立的新類稱為“子類”或“派生類”,被繼承的類稱為“基類”、“父類”或“超類”。繼承的過程,就是從一般到特殊的過程。要實現繼承,可以通過“繼承”(Inheritance)和“組合”(Composition)來實現。繼承概念的實現方式有二類:實現繼承與介面繼承。實現繼承是指直接使用基類的屬性和方法而無需額外編碼的能力;介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;

多型:多型就是指一個類例項的相同方法在不同情形有不同表現形式。多型機制使具有不同內部結構的物件可以共享相同的外部介面。這意味著,雖然針對不同物件的具體操作不同,但通過一個公共的類,它們(那些操作)可以通過相同的方式予以呼叫。

五大基本原則

單一職責原則SRP(Single Responsibility Principle)
是指一個類的功能要單一,不能包羅永珍。如同一個人一樣,分配的工作不能太多,否則一天到晚雖然忙忙碌碌的,但效率卻高不起來。單一職責原則可以看做是低耦合、高內聚在面向原則上的引申,以提高內聚性來減少引起變化的原因。

開放封閉原則OCP(Open-Close Principle)
一個模組在擴充套件性方面應該是開放的而在更改性方面應該是封閉的。比如:一個網路模組,原來只服務端功能,而現在要加入客戶端功能,
那麼應當在不用修改服務端功能程式碼的前提下,就能夠增加客戶端功能的實現程式碼,這要求在設計之初,就應當將服務端和客戶端分開,公共部分抽象出來。

替換原則(the Liskov Substitution Principle LSP)
子類應當可以替換父類並出現在父類能夠出現的任何地方。這一思想體現為對繼承機制的約束規範,只有子類能夠替換基類時,才能保證執行期內識別子類,這是保證繼承複用的基礎。子類可以代替換父類,而父類不可以替換子類。

依賴倒置原則(the Dependency Inversion Principle DIP)

依賴於抽象,具體來說就是,高層模組不依賴底層模組,二者都通依賴於抽象。抽象不依賴於具體,而具體依賴於抽象。模組間的依賴是通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過介面或抽象類產生的;介面或抽象類不依賴於實現類;實現類依賴於介面和抽象類。採用依賴倒置原則可以減少類間的耦合性,提高系統的穩定性,減少併發引起的風險,提高程式碼的可讀性和可維護性。

介面分離原則(the Interface Segregation Principle ISP)
模組間要通過抽象介面隔離開,而不是通過具體的類強耦合起來
其核心思想是:使用多個小的專門的介面,而不要使用一個大的總介面。就是每一個介面都執行一個專門的功能,用什麼調什麼。這樣可以提高程式碼的靈活性,還可以降低類間的耦合性。提高穩定性。