<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 我所理解的代碼設(shè)計(jì)

          我所理解的代碼設(shè)計(jì)

          作者: 時(shí)間:2012-08-24 來(lái)源:網(wǎng)絡(luò) 收藏

          首先任何都是基于現(xiàn)實(shí)的客觀存在,使用計(jì)算機(jī)容易實(shí)現(xiàn)的方式去表現(xiàn)存在。
          主流模式分析
          面向過程的設(shè)計(jì):
          對(duì)于過程處理的東西,例如流程型的的東西,使用面向過程的設(shè)計(jì)

          基于對(duì)象的設(shè)計(jì):
          一個(gè)東西,如果有一個(gè)核心的數(shù)據(jù),加上圍繞核心數(shù)據(jù)的接口,那么就使用基于對(duì)象的設(shè)計(jì)

          面向?qū)ο蟮脑O(shè)計(jì):
          一個(gè)系統(tǒng),里面有很多的對(duì)象,對(duì)象間互相交互,協(xié)調(diào)工作,那么就使用面向?qū)ο蟮脑O(shè)計(jì)

          可見,面向過程,基于對(duì)象,面向?qū)ο蠖际强陀^事物的本身特性,如果一個(gè)工作明明就是流程性的,你卻要使用OO去實(shí)現(xiàn),那么就得不償失,反而會(huì)增加開發(fā)人員的工作量。

          面向過程,基于對(duì)象,OO是可以同時(shí)存在的,是沒有優(yōu)先級(jí)別的,是不矛盾的。

          面向過程,基于對(duì)象,OO是思想方式和設(shè)計(jì)方法,具體的實(shí)現(xiàn)方式千變?nèi)f化,舉例:
          面向過程,可以采用C語(yǔ)言直接實(shí)現(xiàn),
          step1
          step2
          step3
          也可以在C語(yǔ)言中采用數(shù)據(jù)標(biāo)記來(lái)實(shí)現(xiàn)
          while(1){
          if(step == 1)
          {
          func1();
          step = 2;
          }
          else if(step == 2)
          {
          func2();
          step = 3;
          }
          ...

          }

          基于對(duì)象,在C中的實(shí)現(xiàn),可以采用結(jié)構(gòu)中的數(shù)據(jù)和函數(shù)指針來(lái)表示,也可以采用窗口加上消息處理來(lái)表示

          面向?qū)ο?,基本類似于基于?duì)象,只是其關(guān)注點(diǎn)更在多個(gè)對(duì)象關(guān)系而已。

          各種模式?jīng)]有優(yōu)劣之分,各種模式的實(shí)現(xiàn)方式在同一個(gè)語(yǔ)言中都有很多種,也就是說(shuō)設(shè)計(jì)真的和語(yǔ)言沒有什么關(guān)系。
          現(xiàn)實(shí)世界的復(fù)雜,并非以上3中模式所能表達(dá)出來(lái)的,在實(shí)際中有很多的模式。
          而且現(xiàn)實(shí)世界中存在很多的并非上面3類主流模式所能表達(dá)的東西,例如遞歸算法,函數(shù)式,但是無(wú)論什么存在,我們總是有變通的辦法來(lái)表達(dá)的,除非那個(gè)存在計(jì)算機(jī)處理不了。

          關(guān)于面向?qū)ο蟮腻e(cuò)誤理解
          我覺得甚至云風(fēng)等高手對(duì)于面向?qū)ο蠖紱]有本質(zhì)的認(rèn)識(shí),面向?qū)ο蟊举|(zhì)是關(guān)注點(diǎn)是對(duì)象間關(guān)系,對(duì)象間通過接口來(lái)互動(dòng) ,而不是云風(fēng)所說(shuō)的“我所理解的面向?qū)ο?,是讓不同的?shù)據(jù)元有共同的操作方式,適合成組的處理”,共同的操作方式只是關(guān)注對(duì)象間關(guān)系的一個(gè)有效收益,也就是如果一組對(duì)象間有一組相同的接口,那么我們對(duì)這一類對(duì)象的操作,可以采用一個(gè)相同的方式來(lái)進(jìn)行。例如對(duì)于window的UI對(duì)象,可以發(fā)送update消息,讓他們刷新。至于C++程序中的構(gòu)造函數(shù)、析構(gòu)函數(shù)、類、繼承、虛擬函數(shù)、持久化等等更就不是面向?qū)ο蟮谋举|(zhì)意義,只是實(shí)現(xiàn)方式,或者利于對(duì)象使用的工具。
          C++語(yǔ)言引入的東西對(duì)于實(shí)際問題的解決只有有限的效果,但是卻引入過多的復(fù)雜度,真是得不償失!

          其實(shí)就設(shè)計(jì)來(lái)說(shuō),幾十年來(lái),沒有什么本質(zhì)的進(jìn)展,例如OO的本質(zhì)意義,在無(wú)數(shù)次的軟件工程教材中有強(qiáng)調(diào),劃分模塊并即針對(duì)模塊的接口設(shè)計(jì),隱藏模塊的實(shí)現(xiàn)細(xì)節(jié),所以說(shuō),OO不是什么新的東西,只是基本原則上的一個(gè)有益的總結(jié)實(shí)現(xiàn)。想想一下unix的泛文件的概念。
          當(dāng)然語(yǔ)言工具是有很大的進(jìn)步了,例如虛擬機(jī)、各類動(dòng)態(tài)解釋語(yǔ)言,但是本質(zhì)依舊沒有變化。

          關(guān)于OOC
          面向?qū)ο蟮腃語(yǔ)言中,就我目前看來(lái),作者很大的受到C++的影響,無(wú)視OO的本質(zhì),反而企圖用C模擬C++的實(shí)現(xiàn)。實(shí)際上使用C實(shí)現(xiàn)OO并沒有一定的強(qiáng)制方法,對(duì)象接口就可以有很多種,全局?jǐn)?shù)據(jù)、基于通訊的消息、函數(shù)等。

          看看論壇上關(guān)于的問題,我真為中國(guó)的開發(fā)者悲哀。

          由于我在放棄c++之后,導(dǎo)致開發(fā)世界觀變化,

          剛好這幾天在外調(diào)試機(jī)器,中間空閑時(shí)間較多,就想了一下。
          模式是無(wú)處不在,這是基調(diào),例如中關(guān)于建筑中的模式說(shuō)明。
          設(shè)計(jì)模式中的模式是建立在類繼承上,如果沒有了類,例如c語(yǔ)言,那么設(shè)計(jì)模式要發(fā)生大的改變,至少很多的設(shè)計(jì)模式不存在了或者變形了。
          模式應(yīng)重在意圖,和具體的實(shí)現(xiàn)手段沒有多大關(guān)系。例如工廠模式,在c語(yǔ)言中,也可以實(shí)現(xiàn),不過,其實(shí)現(xiàn)方式可以是通過提供一個(gè)消息對(duì)象給client,client通過發(fā)消息給消息對(duì)象,如果消息中的id=1,則生成某個(gè)東西,如果id = 2,則生成另外一個(gè)東西。這個(gè)也是工廠了。
          設(shè)計(jì)模式,特別是GOF中的設(shè)計(jì)模式無(wú)關(guān)緊要,學(xué)不會(huì)也沒有關(guān)系,思想是相通的,對(duì)模式的理解是慢慢進(jìn)行的,快速學(xué)會(huì)也不會(huì)用。
          再次強(qiáng)調(diào),OO和設(shè)計(jì)模式根本就不是銀彈,只是一種思想,而且這個(gè)思想很久以前就存在。所以老老實(shí)實(shí)的做設(shè)計(jì)演化吧,不要妄圖通過學(xué)習(xí)OO和設(shè)計(jì)模式就能一次作出完美的設(shè)計(jì)。
          對(duì)于具體的問題來(lái)說(shuō),業(yè)務(wù)永遠(yuǎn)是最核心的東西,設(shè)計(jì)模式和語(yǔ)言工具對(duì)于業(yè)務(wù)的解決毫無(wú)幫助,反而分散了開發(fā)者的心思。

          c++相關(guān)文章:c++教程




          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();