面向物件之名詞解釋
阿新 • • 發佈:2019-01-11
面向物件的定義
面向物件
(Object-Oriented)=物件(Object)+類(Class)+ 繼承(Inheritance)+通訊(Communication)
如果一個軟體系統是使用這樣4個概念設計和實現的,則將該軟體系統稱為面向物件的。
面向物件的三大特性
- 封裝
- 繼承
繼承在提高程式碼的複用性、統一性時,也提高了耦合度,破壞封閉性。
- 多型
與多型有關的特性:過載(overload)、動態繫結(dynamic binding)、類屬(generic 服務參量的型別可引數化)
面向物件的五大原則
- 單一職責原則
- 開放封閉原則
- 里氏替換原則
- 依賴倒置原則
- 介面隔離原則
單一職責原則(SRP)
- 一個類應該僅有一個引起它變化的原因
開放封閉原則(OCP)
- 對擴充套件開放,對更改封閉
- 開放指:能夠對原有的程式碼進行復用
- 封閉指:不能修改原有的程式碼,或者重新編譯
- 要做到這一點,就要靈活使用封裝、多型、繼承
里氏替換原則(LSP)
- 子類可以替換父類並且出現再父類能夠出現的任何地方
- 這個原則倡導面向介面或抽象類程式設計
依賴倒置原則(DIP)
- 傳統的結構化程式設計中,最上層的模組通常都要依賴下面的子模組來實現,也稱為高層依賴低層
- 該原則就是要逆轉這種依賴關係,讓底層依賴高層。這樣可增加系統的可擴充套件性和可維護性。
介面隔離原則(ISP)
- 一個介面應該有儘可能少的方法
- 使用多個專門的介面比使用單個介面要好的多
介面與抽象類
1.語法層面的區別- 抽象類可以有非抽象方法,而介面的方法只能時抽象的
- 抽象類中的成員變數的許可權可以時任意的,而介面中的成員變數的許可權只有 public static fianl
- 介面中不能含有靜態程式碼塊以及靜態方法,而抽象類都可以有
- 抽象類是對事物的抽象,而介面是對行為的抽象。抽象類在抽象事物時,對事物整體進行抽象,包括屬性,行為。但是,介面並不關心事物的種類,而只關心,具有相同行為的多種型別的事物。
- 抽象類作為很多子類的父類,它是一種設計模板,規定了子類必須具有的方法和屬性。而介面是一種行為規範,它規定了凡是具有該行為的類,必須使用什麼樣的方法申明。在這一點上,介面隔離原則,就是在盡力維護行為的簡潔性。而抽象類則要儘可能的抽象出所需要的所有特性。