三個(gè)基本元素:####
- 封裝: 封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái)礁哄,對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)只能通過(guò)已定義的界面长酗。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治姐仅、封裝的對(duì)象花枫,這些對(duì)象通過(guò)一個(gè)受保護(hù)的接口訪(fǎng)問(wèn)其他對(duì)象。
- 繼承: 繼承是一種聯(lián)結(jié)類(lèi)的層次模型掏膏,并且允許和鼓勵(lì)類(lèi)的重用劳翰,它提供了一種明確表述共性的方法。對(duì)象的一個(gè)新類(lèi)可以從現(xiàn)有的類(lèi)中派生馒疹,這個(gè)過(guò)程稱(chēng)為類(lèi)繼承佳簸。新類(lèi)繼承了原始類(lèi)的特性,新類(lèi)稱(chēng)為原始類(lèi)的派生類(lèi)(子類(lèi))颖变,而原始類(lèi)稱(chēng)為新類(lèi)的基類(lèi)(父類(lèi))生均。派生類(lèi)可以從它的基類(lèi)那里繼承方法和實(shí)例變量,并且類(lèi)可以修改或增加新的方法使之更適合特殊的需要腥刹。
- 多態(tài): 多態(tài)性是指允許不同類(lèi)的對(duì)象對(duì)同一消息作出響應(yīng)马胧。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語(yǔ)言具有靈活衔峰、抽象佩脊、行為共享、代碼共享的優(yōu)勢(shì)垫卤,很好的解決了應(yīng)用程序函數(shù)同名問(wèn)題威彰。
C++中的虛函數(shù)的作用主要是實(shí)現(xiàn)了多態(tài)的機(jī)制。關(guān)于多態(tài)穴肘,簡(jiǎn)而言之就是用父類(lèi)型別的指針指向其子類(lèi)的實(shí)例歇盼,然后通過(guò)父類(lèi)的指針調(diào)用實(shí)際子類(lèi)的成員函數(shù)。這種技術(shù)可以讓父類(lèi)的指針有“多種形態(tài)”评抚,這是一種泛型技術(shù)豹缀。所謂泛型技術(shù),說(shuō)白了就是試圖使用不變的代碼來(lái)實(shí)現(xiàn)可變的算法慨代。比如:模板技術(shù)耿眉,RTTI技術(shù),虛函數(shù)技術(shù)鱼响,要么是試圖做到在編譯時(shí)決議鸣剪,要么試圖做到運(yùn)行時(shí)決議。
五個(gè)基本原則:####
單一職責(zé)原則(Single-Resposibility Principle):一個(gè)類(lèi)丈积,最好只做一件事筐骇,只有一個(gè)引起它的變化。單一職責(zé)原則可以看做是低耦合江滨、高內(nèi)聚在面向?qū)ο笤瓌t上的引申铛纬,將職責(zé)定義為引起變化的原因,以提高內(nèi)聚性來(lái)減少引起變化的原因唬滑。
開(kāi)放封閉原則(Open-Closed principle):軟件實(shí)體應(yīng)該是可擴(kuò)展的告唆,而不可修改的棺弊。也就是,對(duì)擴(kuò)展開(kāi)放擒悬,對(duì)修改封閉的模她。
Liskov替換原則(Liskov-Substituion Principle):子類(lèi)必須能夠替換其基類(lèi)。這一思想體現(xiàn)為對(duì)繼承機(jī)制的約束規(guī)范懂牧,只有子類(lèi)能夠替換基類(lèi)時(shí)侈净,才能保證系統(tǒng)在運(yùn)行期內(nèi)識(shí)別子類(lèi),這是保證繼承復(fù)用的基礎(chǔ)僧凤。
依賴(lài)倒置原則(Dependecy-Inversion Principle):依賴(lài)于抽象畜侦。具體而言就是高層模塊不依賴(lài)于底層模塊,二者都同依賴(lài)于抽象躯保;抽象不依賴(lài)于具體旋膳,具體依賴(lài)于抽象。
接口隔離原則(Interface-Segregation Principle):使用多個(gè)小的專(zhuān)門(mén)的接口途事,而不要使用一個(gè)大的總接口溺忧。