|
【一】 面向?qū)ο蟮幕靖拍?/strong>
面向?qū)ο蟮挠⑽娜Q叫做Object Oriented,簡(jiǎn)稱OO。OO其實(shí)包括OOA(Object Oriented Analysis,面向?qū)ο蠓治?、OOD(Object Oriented Design,面向?qū)ο笤O(shè)計(jì))和OOP(Object Oriented Programming,面向?qū)ο蟮某绦蛟O(shè)計(jì))。
通常所說(shuō)的面向?qū)ο笫侵窸OP, OOP是一種圍繞真實(shí)世界的概念來(lái)組織模型的程序設(shè)計(jì)方法,它采用對(duì)象來(lái)描述問(wèn)題空間的實(shí)體。在使用計(jì)算機(jī)解決問(wèn)題時(shí),對(duì)象是作為計(jì)算機(jī)模擬真實(shí)世界的一個(gè)抽象,一個(gè)對(duì)象就是一個(gè)物理實(shí)體或邏輯實(shí)體,它反映了系統(tǒng)為之保存信息和(或)與它交互的能力。使其具有自己的屬性和行為, 從而簡(jiǎn)化對(duì)復(fù)雜事物的描述,更有利于工程的可維護(hù)性和擴(kuò)展性。
OOP同結(jié)構(gòu)化程序設(shè)計(jì)相比最大的區(qū)別就在于: 前者首先關(guān)心的是所要處理的數(shù)據(jù),而后者首先關(guān)心的是功能。
【二】 面向?qū)ο笕齻€(gè)基本特征
封裝 (Encapsulation) 將數(shù)據(jù)以及相關(guān)的操作組織在一起,成為獨(dú)立的構(gòu)件。外部無(wú)法直接訪問(wèn)這些封裝了的數(shù)據(jù),從而保證了這些數(shù)據(jù)的正確性。封裝的目的是為了內(nèi)部數(shù)據(jù)表現(xiàn)形式和實(shí)現(xiàn)細(xì)節(jié)的隱藏,信息隱藏是為了減少系統(tǒng)各部分間的依賴性,各部分間必須通過(guò)明確的通道傳送信息,也就是對(duì)象間的接口.這樣一來(lái),隱藏了部分內(nèi)部的細(xì)節(jié),極大方便系統(tǒng)的開(kāi)發(fā),維護(hù)和擴(kuò)展。
繼承 (Inheritance) 繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵(lì)類的重用,它提供了一種明確表述共性的方法。一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過(guò)程稱為類的繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實(shí)例變量,并且派生類可以修改或增加新的方法使之更適合特殊的需求。繼承性很好地解決了軟件的可重用性問(wèn)題。
多態(tài) (Polymorphism) 多態(tài)是允許你將父對(duì)象設(shè)置成為和一個(gè)或更多的他的子對(duì)象相等的技術(shù),賦值之后,父對(duì)象就可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。簡(jiǎn)單的說(shuō),就是允許類與類之間相同方法名的指針得以調(diào)用, 這樣很好地解決了應(yīng)用程序函數(shù)同名問(wèn)題。實(shí)現(xiàn)多態(tài),有二種方式,覆蓋,重載。
【三】 Javascript 面向?qū)ο?/strong>
Javascript本身是一種基于對(duì)象(object-based)的語(yǔ)言,我們?nèi)粘>幋a過(guò)程中用到的所有東西幾乎都是對(duì)象(Number, String, Boolean, etc.)。但是,相對(duì)于一些流行的面向?qū)ο笳Z(yǔ)言(C++, C#, Java),它又不是一種真正的面向?qū)ο缶幊?OOP)語(yǔ)言,因?yàn)樗恼Z(yǔ)法中沒(méi)有class的概念。
Keyword: class, object, `this`, closure, constructor, prototype
幾種對(duì)象封裝的方法
- 繼承
- 多態(tài)體現(xiàn)
之一、幾種對(duì)象封裝的方法
1. 對(duì)象封裝 – 原始模式
假定我們把貓看成一個(gè)對(duì)象,它有”name”和”color”兩個(gè)屬性, “etc” 行為。
var Cat = { name: '' color: '', eat: function() {}};
it知識(shí)庫(kù):前端開(kāi)發(fā)之面向?qū)ο?/a>,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。