面向?qū)ο蠛兔嫦蜻^程
1、面向?qū)ο?/h4>
1.1 面向?qū)ο笏枷氲暮诵闹唬褪?strong>模擬真實世界界牡,把真實世界中的事物抽象成類,整個程序靠各個類的實例互相通信漾抬、互相協(xié)作完成系統(tǒng)功能宿亡,這非常符合真實世界的運行狀況,也是面向?qū)ο笏枷氲木琛?/p>
1.2 面向?qū)ο笫且环N程序設(shè)計思想纳令,計算機程序的設(shè)計實質(zhì)上就是將現(xiàn)實中的一些事物的特征抽離出來描述成一些計算機事件的過程挽荠,這種抽象的過程中,我們把具體的事物封裝成一個一個的整體進(jìn)行描述平绩,使被描述的對象具備一些系統(tǒng)性圈匆、整體性的的行為和特征,我們把這種設(shè)計思想稱為面向?qū)ο蟆?/p>
2捏雌、面向?qū)ο笈c面向過程
2.1 面向過程是早期的程序語言設(shè)計思想跃赚,該思想強調(diào)事物的行為細(xì)節(jié),即程序的設(shè)計不需要封裝成一個個的整體性湿,而是將整個程序描述成一個行為纬傲,所有行為細(xì)節(jié)都按照固定方式一步一步的執(zhí)行满败,執(zhí)行程序就是執(zhí)行某一行為的過程。
2.2 面向?qū)ο蠛兔嫦蜻^程都是一種思想叹括,面向?qū)ο笫窍鄬τ诿嫦蜻^程而言的葫录,面向過程強調(diào)的是具體的功能行為,而面向?qū)ο髮⒐δ芊庋b進(jìn)對象领猾,強調(diào)具備了功能的對象,面向?qū)ο笫腔诿嫦蜻^程的骇扇,但面向?qū)ο笏枷敫咏诂F(xiàn)實場景摔竿。
3、例子:如何大象裝進(jìn)冰箱少孝?
面向過程:
為了把大象裝進(jìn)冰箱继低,需要3個過程。
- 把冰箱門打開(得到打開門的冰箱)稍走,即冰箱開門(冰箱)
- 把大象裝進(jìn)去(打開門后袁翁,得到里面裝著大象的冰箱),即冰箱裝進(jìn)(冰箱, 大象)
- 把冰箱門關(guān)上(打開門婿脸、裝好大象后粱胜,獲得關(guān)好門的冰箱),即冰箱關(guān)門(冰箱)
每個過程有一個階段性的目標(biāo)狐树,依次完成這些過程焙压,就能把大象裝進(jìn)冰箱。
總結(jié):冰箱關(guān)門(冰箱裝進(jìn)(冰箱開門(冰箱), 大象))
面向?qū)ο螅?/h5>
為了把大象裝進(jìn)冰箱抑钟,需要做三個動作(或者叫行為)涯曲。
每個動作有一個執(zhí)行者,它就是對象在塔。
- 冰箱幻件,你給我把門打開,即冰箱.開門()
- 冰箱蛔溃,你給我把大象裝進(jìn)去(或者說绰沥,大象,你給我鉆到冰箱里去)城榛,即冰箱.裝進(jìn)(大象)
- 冰箱揪利,你給我把門關(guān)上,即冰箱.關(guān)門()
依次做這些動作狠持,就能把大象裝進(jìn)冰箱疟位。
總結(jié):冰箱.開門().裝進(jìn)(大象).關(guān)門()
面對接口編程
1、面向接口編程和面向?qū)ο缶幊淌鞘裁搓P(guān)系
首先喘垂,面向接口編程和面向?qū)ο缶幊滩⒉皇瞧郊壍奶鹂蹋⒉皇潜让嫦驅(qū)ο缶幊谈冗M(jìn)的一種獨立的編程思想绍撞,而是附屬于面向?qū)ο笏枷塍w系,屬于其一部分得院∩迪常或者說,它是面向?qū)ο缶幊腆w系中的思想精髓之一祥绞。
2非洲、接口的本質(zhì)
1)接口是一組規(guī)則的集合,它規(guī)定了實現(xiàn)本接口的類或接口必須擁有的一組規(guī)則蜕径。體現(xiàn)了自然界“如果你是……則必須能……”的理念两踏。
2)接口是在一定粒度視圖上同類事物的抽象表示。注意這里我強調(diào)了在一定粒度視圖上兜喻,因為“同類事物”這個概念是相對的梦染,它因為粒度視圖不同而不同。
面向?qū)ο笏枷牒秃诵闹唤凶龆鄳B(tài)性朴皆,什么叫多態(tài)性帕识?說白了就是在某個粒度視圖層面上對同類事物不加區(qū)別的對待而統(tǒng)一處理。而之所以敢這樣做遂铡,就是因為有接口的存在肮疗。
3、面向接口編程綜述
在系統(tǒng)分析和架構(gòu)中扒接,分清層次和依賴關(guān)系族吻,每個層次不是直接向其上層提供服務(wù)(即不是直接實例化在上層中),而是通過定義一組接口珠增,僅向上層暴露其接口功能超歌,上層對于下層僅僅是接口依賴,而不依賴具體類蒂教。
4巍举、關(guān)于抽象類與接口
區(qū)別一:使用抽象類是為了代碼的復(fù)用,而使用接口的動機是為了實現(xiàn)多態(tài)性凝垛。而一個東西該定義成抽象類還是接口懊悯,要根據(jù)具體環(huán)境的上下文決定,如使用動機梦皮。
區(qū)別二:抽象類和它的子類之間應(yīng)該是一般和特殊的關(guān)系炭分,而接口僅僅是它的子類應(yīng)該實現(xiàn)的一組規(guī)則剑肯。(當(dāng)然捧毛,有時也可能存在一般與特殊的關(guān)系,但我們使用接口的目的不在這里)