面向?qū)ο?Object Oriented,OO)是軟件開(kāi)發(fā)方法。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開(kāi)發(fā),擴(kuò)展到如數(shù)據(jù)庫(kù)系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù) 發(fā)展到一定階段后的產(chǎn)物。---------百度百科

  理論性的想必大家都已看過(guò),這里不必多說(shuō),今天我們就日常開(kāi)發(fā)中的實(shí)際而講,從另一個(gè)角度解析軟件開(kāi)發(fā)領(lǐng)域的面向?qū)ο蟆?/p>

  每個(gè)新事物的產(chǎn)生都是有過(guò)程的,面向?qū)ο笠膊焕?,那么沒(méi)有面向?qū)ο笾拔覀兇蠖嗍怯檬裁捶绞介_(kāi)發(fā)呢?想必大家心里都有一個(gè)共同的詞語(yǔ)-----面向過(guò)程。對(duì)于面向過(guò)程概念大家想必十分熟悉吧,現(xiàn)在還有很多人在用這種方式開(kāi)發(fā),它有自己獨(dú)到的魅力---簡(jiǎn)單。做到哪里寫哪里,只需考慮眼前的技術(shù)問(wèn)題是否能解決就可以了。當(dāng)你遇到的問(wèn)題從不重復(fù)時(shí)它真的是再好用不過(guò)了。但是當(dāng)大家不斷的在開(kāi)發(fā)領(lǐng)域探索時(shí)肯定會(huì)發(fā)現(xiàn)相同的問(wèn)題不停出現(xiàn),而按照面向過(guò)程的思想就地解決,一次兩次三次,漸漸的你會(huì)發(fā)現(xiàn)自己做了好多重復(fù)的工作,而且隨之而來(lái)的問(wèn)題是擴(kuò)展性差、可維護(hù)性差,寫過(guò)的東西不能重用。

  有了存在問(wèn)題自然就會(huì)有人去解決。那你可以說(shuō)我們建個(gè)公共類,有相同的問(wèn)題就在公共類里寫一個(gè)方法其它地方調(diào)用不就可以了?但是我們會(huì)發(fā)現(xiàn)有些問(wèn)題只是相似,有部分相同部分不同怎么辦?那你會(huì)說(shuō)我們把相同的封裝不同的單獨(dú)寫不就可以了?那這時(shí)候又有一個(gè)問(wèn)題蹬蹬瞪跑出來(lái)了,它更復(fù)雜,它是之前的問(wèn)題升級(jí)版,它包括我們封裝的部分又包括之前其中一個(gè)問(wèn)題的一部分,怎么辦?再封裝剩余的交集?

  當(dāng)這種情況發(fā)生到一定量級(jí)時(shí)單純的這樣處理很片面,我們無(wú)法直觀的了解這些相似問(wèn)題之間的關(guān)系,我們也無(wú)法主動(dòng)的避免這些問(wèn)題。那么問(wèn)題的核心在哪里?我們?cè)诂F(xiàn)實(shí)處理業(yè)務(wù)的場(chǎng)景時(shí),往往也是一個(gè)需求剛開(kāi)始很簡(jiǎn)單,再往后就會(huì)升級(jí)一次又一次變得越來(lái)越復(fù)雜,新的需求往往會(huì)在舊的功能上進(jìn)行分支。這像什么?一個(gè)樹(shù)形,這些需求為什么會(huì)在一棵樹(shù)上?因?yàn)樗鼈冇泻芏喙餐c(diǎn)。而這個(gè)這些共同點(diǎn)都會(huì)指向上級(jí)直到樹(shù)的根,而這個(gè)根就是我們的問(wèn)題核心,就是我們要處理的“對(duì)象”。他在概念上是包含子節(jié)點(diǎn)的,而在實(shí)現(xiàn)上是被子節(jié)點(diǎn)包含的(概念上是所有節(jié)點(diǎn)的并集,實(shí)現(xiàn)上是所有節(jié)點(diǎn)的交集)。問(wèn)題被剝離出來(lái)了就要解決,而我們這種針對(duì)這個(gè)對(duì)象來(lái)思考來(lái)解決問(wèn)題從而達(dá)到解決與之相關(guān)的所有問(wèn)題的思想就是面向?qū)ο蟮乃枷?。而最佳?shí)踐-----本章不做討論。

  本章先開(kāi)個(gè)頭,講的比較粗,若有不足請(qǐng)大家多多指點(diǎn)。

標(biāo)簽: 面向?qū)ο?/a>, 技術(shù)理論