javascript物件導向 三

2021-09-24 20:01:31 字數 1223 閱讀 4807

物件導向三大特徵:封裝、繼承、多型

封裝:將**封裝到函式中,不允許外部訪問內部成員的屬性和方法,對外提供唯一的訪問介面。

繼承:通過物件繼承另乙個物件的屬性和方法,並進行擴充套件開發和維護。繼承擁有單根性和傳遞性。

多型:乙個介面方式,根據引數的不同實現不同的狀態(前端沒有多型,只有偽多型)。

封裝的優勢:

1.使用者只需要關注實現即可,不需要關注內部原理。

2.降低了程式之間的依賴性,低耦合。

3.隱藏內部細節,不對外公開,一定程度保證了安全性。

es5中通過提供get/set對資料的取賦值進行了操作

封裝的最好體現就是ajax和jquery

繼承的優勢:

1.節省**

2.便於開發維護

3.方便擴充套件重寫**結構

單根性:乙個類只能繼承另乙個類的屬性和方法,繼承不能實現多繼承,避免**的複雜性(乙個兒子只能有乙個爹).

傳遞性:類的繼承是可以傳遞下去的,也就是說類a繼承類b , 類c繼承類a ,那麼c同樣會繼承b的方法和屬性。

五大基本原則

1.單一職能原則 srp

這個非常好理解了,就是說乙個類應該只有乙個發生變化的原因。

以上面student為例子,我們可以讓他擁有學習和教授別人兩種功能,但是最明顯的問題,如果把教授別人的時間多了,那麼自己學習的時間就少了,勢必影響個人學習,所以盡量將學生和老師的職責分離開來。(例子而已,不要太糾結)這樣的話就能更好的組織**結構。

2.開放封閉原則

程式對外擴充套件是開放的,但是對內修改是封閉的

簡單來說就是乙個物件一旦被定義,那麼已經定義好的部分是不允許修改的,但是可以擴充套件額外的**結構

3.黎克特制替換原則ocp

主張使用抽象和多型將設計中的靜態結構改為動態結構,維持設計的封閉性。

任何基類出現的地方,子類也可以出現。簡單來說就是子類可以替代父類進行傳參或操作

4.依賴倒置原則

高層模組定義介面,低層模組進行實現,轉換了依賴關係。

1.高層模組不應該依賴於低層模組,兩者應該依賴於抽象物件

2.抽象不應該依賴於細節,細節應該依賴於抽象

控制反轉(ioc):將物件建立的控制權轉移,通過配置檔案或其他形式進行建立。

依賴注入(di):ioc容器在執行期間,動態的將某種依賴關係注入到物件之中。

5.介面分離原則

客戶類不應該唄強迫依賴那些不需要的介面

乙個類依賴於另乙個類應該建立在最小的介面上

Javascript物件導向程式設計(三)

日期 2010年5月24日 這個系列的第一部分介紹了 封裝 第二部分介紹了使用建構函式實現 繼承 今天是最後乙個部分,介紹不使用建構函式實現 繼承 一 什麼是 非建構函式 的繼承?比如,現在有乙個物件,叫做 中國人 var chinese 還有乙個物件,叫做 醫生 var doctor 請問怎樣才能...

Javascript 物件導向程式設計 三

方法和屬性從乙個類傳遞到另乙個類的過程 funtion person firstname,lastname person.prototype.sayhi function function student firstname,lastname student.prototype.sayhi func...

Javascript 物件導向程式設計 三

方法和屬性從乙個類傳遞到另乙個類的過程 funtion person firstname,lastname person.prototype.sayhi function function student firstname,lastname student.prototype.sayhi func...