千鋒教育Kerwin系列前端教程1000集(適合前端0基礎(chǔ),h5(html5)/

面向?qū)ο缶褪前褦?shù)據(jù)及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存的整體——對(duì)象。對(duì)同類對(duì)象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過消息進(jìn)行通信。程序流程由用戶在使用中決定。對(duì)象即為人對(duì)各種具體物體抽象后的一個(gè)概念,人們每天都要接觸各種各樣的對(duì)象,如手機(jī)就是一個(gè)對(duì)象。核心是一個(gè)對(duì)象。對(duì)象是一個(gè)數(shù)據(jù)以及相關(guān)行為的簡(jiǎn)化的集合面向?qū)ο笫枪δ苌现赶蚪?duì)象,通過數(shù)據(jù)和行為方式來描述交互對(duì)象的集合。
優(yōu)點(diǎn):1、性能比面向?qū)ο蠛?,因?yàn)轭愓{(diào)用時(shí)需要實(shí)例化,開銷比較大,比較消耗資源。2、解決程序的拓展性
缺點(diǎn):1、不易維護(hù)、不易復(fù)用、不易擴(kuò)展。2、復(fù)雜度遠(yuǎn)高于面向過程。3、交互是解決問題,無法準(zhǔn)確預(yù)測(cè)結(jié)果。
面向?qū)ο笥腥筇匦裕庋b、繼承和多態(tài)。
封裝就是將一類事物的屬性和行為抽象成一個(gè)類,使其屬性私有化,行為公開化,提高了數(shù)據(jù)的隱秘性的同時(shí),使代碼模塊化。這樣做使得代碼的復(fù)用性更高。
繼承則是進(jìn)一步將一類事物共有的屬性和行為抽象成一個(gè)父類,而每一個(gè)子類是一個(gè)特殊的父類--有父類的行為和屬性,也有自己特有的行為和屬性。這樣做擴(kuò)展了已存在的代碼塊,進(jìn)一步提高了代碼的復(fù)用性。
如果說封裝和繼承是為了使代碼重用,那么多態(tài)則是為了實(shí)現(xiàn)接口重用。多態(tài)的一大作用就是為了解耦--為了解除父子類繼承的耦合度。如果說繼承中父子類的關(guān)系式IS-A的關(guān)系,那么接口和實(shí)現(xiàn)類之之間的關(guān)系式HAS-A。簡(jiǎn)單來說,多態(tài)就是允許父類引用(或接口)指向子類(或?qū)崿F(xiàn)類)對(duì)象。很多的設(shè)計(jì)模式都是基于面向?qū)ο蟮亩鄳B(tài)性設(shè)計(jì)的。
總結(jié)一下,如果說封裝和繼承是面向?qū)ο蟮幕A(chǔ),那么多態(tài)則是面向?qū)ο笞罹璧睦碚?。掌握多態(tài)必先了解接口,只有充分理解接口才能更好的應(yīng)用多態(tài)。