青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見(jiàn)諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

一定要堅(jiān)守的原則

1、不能從算法和數(shù)據(jù)結(jié)構(gòu)的組織這個(gè)層面上考慮設(shè)計(jì),而應(yīng)該從從模塊和數(shù)據(jù)流的層面上考慮設(shè)計(jì)。把數(shù)據(jù)流搞清楚,按照需求,拆分成能夠完成需求的各自獨(dú)立的模塊,讓數(shù)據(jù)從起點(diǎn)到終點(diǎn)流動(dòng),被處理,最后得到結(jié)果。

      比如:數(shù)據(jù)存儲(chǔ)模塊、價(jià)格發(fā)生器、價(jià)格過(guò)濾器、交叉盤(pán)價(jià)格合成器、價(jià)格發(fā)布器、視圖模塊;

image

2、根據(jù)數(shù)據(jù)流圖,拆分出來(lái)的獨(dú)立模塊,設(shè)計(jì)類;

3、類的分別原則是:屬于流程不同模塊,即使功能相似或者相近,也不能合成一個(gè)類;

4、一個(gè)類只做有限的事情,大而全的類雖然有可能是一種方案,但決不是最好的方案,它增加了耦合和復(fù)雜性,維護(hù)性也很低;

5、類的實(shí)現(xiàn)部分,盡量不要直接調(diào)用類成員以外的數(shù)據(jù),比在類的函數(shù)中,直接對(duì)某個(gè)全局對(duì)象調(diào)用方法,這樣類函數(shù)執(zhí)行的前提是:這個(gè)全局對(duì)象必須存在,而這是一種耦合。解耦是簡(jiǎn)單的,那就是把這個(gè)全局對(duì)象作為類函數(shù)的參數(shù)傳入;

6、類的方法接口,應(yīng)該只接受能夠完成類方法所需要的數(shù)據(jù),如果傳遞一個(gè)指針,這個(gè)指針包含的內(nèi)容,可能遠(yuǎn)遠(yuǎn)超過(guò)類方法所需要的;

7、關(guān)于上一點(diǎn)的解決辦法是:構(gòu)建類需要參數(shù)的POD,不要怕轉(zhuǎn)換,不要怕生成臨時(shí)對(duì)象,事實(shí)上我需要這樣做。

 

===========================================================================================

改進(jìn)后的版本

1、界面視圖本來(lái)可以承擔(dān)控制器的作用,也就是MVC簡(jiǎn)化成MV。但是這樣就必須讓視圖來(lái)處理命令,試圖必須具備雙向的能力:即解析命令,并向下執(zhí)行同步到模型(數(shù)據(jù));根據(jù)模型(數(shù)據(jù)),同步視圖,向上更新界面;

2、控制器和視圖集中在視圖里面,增加了視圖的復(fù)雜性,如果增加一個(gè)命令控制器,最終變成MVC,那么視圖就只需要具備向上更新UI的能力,向下執(zhí)行命令更改模型(數(shù)據(jù))的能力交給了命令控制器。這樣就實(shí)現(xiàn)了一上一下,各司其職的架構(gòu);

3、形成視圖的經(jīng)常不只是一種數(shù)據(jù)流,往往多種數(shù)據(jù)流共同形成一個(gè)視圖:比如下面的結(jié)構(gòu)中,視圖是由:配置流,價(jià)格流,日志流三種組合而成的;

4、增加命令控制器的作用的事顯而易見(jiàn)的,它讓業(yè)務(wù)控制的接口可以脫離視圖而存在。反過(guò)來(lái)理解,如果用視圖來(lái)同時(shí)充當(dāng)用戶命令接口,那么用戶命令接口存在的前提是視圖必須存在。而視圖是多變的,或者說(shuō)可以根本不存在,那么把用戶命令接口放在其中極其不合適。試想一下,一個(gè)項(xiàng)目它可以是個(gè)對(duì)話框,可以是個(gè)多文檔,也可以是個(gè)控制臺(tái),多變的界面,多變的視圖,但是用戶命令接口確實(shí)不便的,把用戶命令耦合到視圖的實(shí)現(xiàn)里面去,就不合適了;

5、把命令控制器抽離出來(lái)的另一個(gè)好處是:集中管理用戶的命令,便于維護(hù)。試想一個(gè)如果對(duì)用戶命令的處理分散在若干個(gè).cpp文件,幾十個(gè)C***Dailog的On***Button()消息相應(yīng)函數(shù)里面,理解,調(diào)試,維護(hù)起來(lái),將是一件多為痛苦的事情;

6、更多想寫(xiě)的一句話,就是業(yè)務(wù)邏輯,不要和界面耦合起來(lái),界面需要做的就是:顯示視圖,接受用戶命令兩個(gè)功能,其他的都沒(méi)必要在界面里面存在。舉個(gè)例子,用得很多的MFC OnTimer()函數(shù),事實(shí)上定時(shí)操作應(yīng)該是業(yè)務(wù)邏輯的部分,放在界面里執(zhí)行就不合適了;

7、檢測(cè)界面與業(yè)務(wù)邏輯耦合程度的一個(gè)標(biāo)志就是:把程序里界面代碼剝離后,業(yè)務(wù)邏輯依然完整,程序依然可以運(yùn)行。如上面所說(shuō)的,界面中處理OnTImer()函數(shù),則去掉界面代碼后,業(yè)務(wù)邏輯就不完整了,少了執(zhí)行定時(shí)業(yè)務(wù)處理的部分,這就是一中明顯的界面與業(yè)務(wù)邏輯耦合。

image

8、程序可以分為很多功能模塊,命令控制器能夠控制這些功能模塊的行為是應(yīng)該,這些功能模塊輸出信息到視圖里面也是應(yīng)該的。

 

===========================================================================================

struct ViewResult
{
    struct ViewSource
    {
        char  symbol[12];
        int        digits;
        double minprice;
        double minspread;
        double peerminm;
        BOOL    usepremium;
        double premiumex;
        char   session_current;
        char    remark[256];
        BOOL   session_enable;
    } view_source;
    struct ViewTrans
    {
        BOOL   b_bid_success;
        BOOL    b_ask_success;
    }view_trans;
    struct ViewPrice
    {
        double bid;
        double ask;
    }view_price;
};

 

    BOOL UpdateViewSource(int index, const ViewResult::ViewSource& vs);
    BOOL UpdateViewTrans(int index, const ViewResult::ViewTrans& vt);
    BOOL UpdateViewPrice(int index, const ViewResult::ViewPrice& vp);
    BOOL UpdateViewMsg(const ViewMsg& vm);
p

posted on 2008-08-05 23:47 肥仔 閱讀(454) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 編程思想

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            麻豆国产va免费精品高清在线| 久久久久久网| 国产精品欧美日韩一区| 欧美人成免费网站| 欧美日韩视频专区在线播放| 欧美亚男人的天堂| 国内精品视频在线观看| 禁久久精品乱码| 亚洲精品一区二区在线| 亚洲一区二区毛片| 国产精品99久久99久久久二8| 最新亚洲激情| 欧美ed2k| 亚洲激情视频网| 99精品99久久久久久宅男| 一区二区av在线| 亚洲欧美国产精品va在线观看| 欧美专区中文字幕| 欧美国产专区| 国产一区二区三区直播精品电影| 亚洲欧洲午夜| 午夜日韩福利| 亚洲国产精品悠悠久久琪琪 | 国产欧美日韩不卡免费| 国产主播精品在线| 亚洲精品视频一区| 欧美一二三区精品| 欧美大尺度在线| 亚洲中午字幕| 欧美好骚综合网| 国产日韩精品一区二区浪潮av| 亚洲电影免费观看高清完整版在线观看| 一区二区三区成人| 欧美成人精品高清在线播放| 亚洲香蕉网站| 欧美激情bt| 亚洲电影在线| 久久久蜜臀国产一区二区| 亚洲美女视频在线观看| 欧美a级在线| 在线观看亚洲专区| 欧美在线观看一区| 一区二区日韩免费看| 欧美成人视屏| 在线观看欧美一区| 久久人人爽爽爽人久久久| 亚洲永久免费精品| 国产精品va在线播放| 99re6热只有精品免费观看 | 亚洲天堂av在线免费| 欧美gay视频| 欧美在线播放一区二区| 国产精品一区二区三区四区五区 | 欧美区亚洲区| 亚洲美女中文字幕| 欧美电影免费观看网站| 久久久www免费人成黑人精品| 国产日韩精品视频一区二区三区 | 久久久久久久久久久久久9999| 亚洲性视频h| 国产精品专区第二| 亚洲国产精品久久久久久女王| 国产精品看片你懂得| 中文高清一区| 一区二区欧美在线观看| 欧美色图一区二区三区| 亚洲一区免费| 亚洲欧美日韩综合国产aⅴ| 国产精品美女诱惑| 欧美一级黄色录像| 久久成人免费日本黄色| 黄色国产精品| 亚洲国产精品久久久久秋霞影院 | 香蕉久久夜色精品| 国产综合av| 男女精品视频| 欧美黑人一区二区三区| 这里只有精品丝袜| 亚洲免费在线观看| 一区二区三区在线不卡| 亚洲国产精品福利| 国产精品嫩草影院av蜜臀| 久久精品九九| 欧美激情第二页| 亚洲欧美日韩区| 久久久久久久久久码影片| 亚洲精品偷拍| 亚洲欧美成人| 亚洲电影免费| 一区二区激情视频| 一色屋精品亚洲香蕉网站| 亚洲人体1000| 国内精品美女av在线播放| 亚洲国产精品va| 国产人久久人人人人爽| 欧美激情精品久久久久久变态| 欧美色图首页| 巨胸喷奶水www久久久免费动漫| 欧美高清在线视频观看不卡| 亚洲一区激情| 欧美多人爱爱视频网站| 久久经典综合| 欧美日韩国产首页在线观看| 久久久久久尹人网香蕉| 欧美日韩视频在线观看一区二区三区 | 欧美一区二区在线免费播放| 亚洲精品日韩精品| 欧美一区二区女人| 亚洲婷婷综合久久一本伊一区| 久久久久国产一区二区三区四区| 亚洲视频1区| 美女91精品| 久久亚洲图片| 国产精品久久久久久久久婷婷| 亚洲黄网站黄| 韩国av一区二区三区| 亚洲一区激情| 亚洲视频一二| 欧美精品国产精品日韩精品| 国产一区清纯| 欧美一级黄色网| 欧美日韩成人在线| 欧美粗暴jizz性欧美20| 国产在线欧美日韩| 午夜亚洲影视| 欧美亚洲日本一区| 国产精品卡一卡二卡三| 一区二区高清在线| 在线亚洲伦理| 欧美理论视频| 亚洲毛片在线免费观看| 亚洲欧洲日本在线| 老司机一区二区| 欧美韩日视频| 亚洲精品国产精品国自产观看| 老牛嫩草一区二区三区日本| 久久久精品一品道一区| 国产欧美一区二区视频| 亚洲欧美bt| 久久岛国电影| 韩日欧美一区二区三区| 久久黄色小说| 欧美99在线视频观看| 亚洲区第一页| 欧美日韩亚洲不卡| 亚洲香蕉视频| 久久久久久综合| 亚洲第一伊人| 欧美日本在线播放| 亚洲一区成人| 久久久久久久精| 亚洲激情欧美| 欧美四级在线观看| 香蕉国产精品偷在线观看不卡| 久久午夜精品一区二区| 亚洲激情电影中文字幕| 欧美日韩国语| 欧美一区二区三区在线| 欧美国产日韩a欧美在线观看| 日韩午夜在线电影| 国产精品一区二区久久久久| 欧美一级在线亚洲天堂| 欧美国产日韩一区二区| 中文欧美日韩| 一区二区在线不卡| 欧美日韩另类在线| 久久av一区二区三区亚洲| 亚洲国产天堂久久综合| 亚洲欧美国产毛片在线| 一区视频在线看| 欧美视频一区二区| 久久精品国产清高在天天线| 亚洲日韩中文字幕在线播放| 久久国产精品72免费观看| 亚洲精品久久7777| 国产日本精品| 欧美三级电影一区| 久久人体大胆视频| 亚洲一区尤物| 亚洲精品欧洲精品| 免费观看成人www动漫视频| 亚洲影院在线观看| 亚洲黄色在线视频| 国产专区欧美精品| 国产精品人人做人人爽| 免费的成人av| 久久九九全国免费精品观看| 一区二区三区欧美在线| 亚洲电影在线| 开心色5月久久精品| 欧美亚洲在线视频| 欧美成人高清视频| 韩国欧美一区| 宅男精品视频| 亚洲美女色禁图| 欧美成人蜜桃| 亚洲人成绝费网站色www| 在线观看三级视频欧美| 麻豆精品一区二区av白丝在线| 亚洲第一网站免费视频|