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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

《ASD》設計模式:Command和Active Object

轉載自:http://likeyesterday.spaces.live.com/Blog/cns!A80F5D17DD9D10BF!597.entry

Command模式:
Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. - 《Design Patterns》

Command模式的關鍵在于只包含一個 Execute方法,子類在實現這個接口時,在Execute方法中,完成特定的任務??梢哉f,這是一個非常簡單的模式。
《ASD》中提到了該模式的三種用法:
1. Invoker可以和任意一個Command掛鉤,而且不需要了解這到底是個什么ConcreteCommand,然后在需要的時候調用這個 Command對象的Execute方法就行了。這在消息驅動的的系統中非常常見,每個trigger就是一個invoker。那么如何把Command 和invoker掛鉤呢?方法很多,最cool的方法是在系統外用一個配置文件來指定。這樣不需要重新編譯就可以改變軟件運行的方式。可以參考 Source Insight的界面。Source Insight中可以任意配置菜單項和工具欄按鈕。其實現應該就是應用了這種Command模式。
2. 上面的方法是否讓人想起了Template模式?有點相像吧。順著這個思路去想,就可以把Command模式應用于Transaction。讓一個類來解決Transaction的init和uninit問題,中間包含一個Command的隊列。這樣就可以把這個隊列中的全部command當作一個 transaction了。這樣的作法可以把Transaction的實現和邏輯分離開來,是很漂亮的實現。同樣的思路,也可以用在類似的問題上,需要 init和uninit,中間有不定量的操作。
3.如果真的用來解決transaction問題,那么就必須具備roll back的能力。然而這個很容易實現,只要在command類中,添加undo方法就可以了。剩下的活交給invoker來處理。
4.此外還有一個附帶的好處。command類和一個單獨的execute方法其實很相似,但是command類的對象有生命周期,可以由程序來控制。因此,一個command對象,可以在提交了很長時間以后再批量執行。
 
除了這些以外,《Design Pattern》還提到了Command模式的其他使用方法。雖然這些方法未必實用,但我還是把它們列在這里:
1.command對象和command對象的序列都可以serialization。這樣如果軟件被有意或無意的中止(例如crash),在重新啟動后,還可以接續之前沒有完成的任務。
2.Command模式如果和Composite模式接合,就可以作出MacroCommand。^_^,這個idea雖然很cool,但是可以用到的地方大概不多吧。
 
Active Object模式不屬于《Design Pattern》23模式。實際上,她是一種特殊的Command Queue。其特殊之處在于:
1. 隊列的擁有者會順序地執行隊列中所有Command對象的Execute方法。(這個其實不算特殊)
2.Command對象在自己的Execute方法結束前,可以把一個新的command對象(實際上常常是這個command對象自己)再加到隊列的尾部。
看出來了嗎,這個隊列有可能不會終止的,他可以一直執行下去。這個可以作為一個應用或者服務的主模塊了,想像一下她可以作多少事情吧。
《ASP》指出這個模式可以用來在一個線程中處理多任務的問題?。?! ^_^ 太cool了。
如何處理呢?你可以把每個command對象看作是一個任務。他在Execute函數中,處理自己的任務,在任務告一段落時,記錄自己的狀態,然后把自己插入到隊列的尾部,結束Execute方法。當隊列輪完一周后,又會再次執行這個command對象的Execute方法。 ^_^ 很cool吧。
那么這種方法和多線程的方法相比有什么有缺點呢?
最大的優點是,所有的command都在同一個線程中,因此切換時,不需要進入內核模式!!超高效?。。《?,可以有很多很多的command,數量上遠遠超過多線程的數量。
缺點嘛,是這種方法需要用戶自己來實現調度,另外這其實是一種非剝奪模式的多任務,如果command處理不好,就會連累其它所有的command,因此實際上比多線程要更復雜。(嘿嘿,程序員能夠怕麻煩嗎?)
還有一點,Active Object運行于單線程,也就是說,她不能享受多處理器或多處理器核心帶來的性能上的改善。
其實,這最后一點是非常致命的一點。也就是說,在當前intel的超線程CPU機器上,如果系統的負擔并不重的時候。Active Object的效率有可能比多線程更低。
Anyway,這是一個非常有趣的模式。只是一般的程序員可能沒有機會用到。但是請記住她,也許能有那么一次機會,可一用她來爽上一把。

posted on 2010-02-28 16:05 楊粼波 閱讀(947) 評論(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>
            欧美激情一区二区三区全黄| 亚洲国产婷婷香蕉久久久久久| 国产乱肥老妇国产一区二| 欧美电影免费观看网站| 欧美精品色综合| 国产精品你懂的| 国产日韩欧美一区| 精品91久久久久| 影音先锋亚洲精品| 久久精品国产亚洲精品| 午夜一级久久| 久久精品综合网| 欧美激情小视频| 国产精品视频男人的天堂| 国产综合久久久久久| 1000部精品久久久久久久久| 一本久久综合亚洲鲁鲁| 久久精品国产亚洲aⅴ| 久久精品视频播放| 亚洲国产天堂久久综合网| 亚洲午夜av电影| 久久嫩草精品久久久久| 国产精品sss| 亚洲国产精品黑人久久久| 亚洲永久在线观看| 欧美韩国日本综合| 午夜精品99久久免费| 欧美成人免费全部| 国产精品高清网站| 亚洲黑丝在线| 久久av最新网址| 亚洲毛片网站| 老牛影视一区二区三区| 国产日韩欧美三区| 亚洲视频中文字幕| 欧美电影专区| 久久av一区二区三区漫画| 欧美性久久久| 9l视频自拍蝌蚪9l视频成人| 欧美 日韩 国产在线| 欧美一区二区私人影院日本| 欧美色区777第一页| 亚洲级视频在线观看免费1级| 欧美在线视频在线播放完整版免费观看| 欧美福利在线| 久久尤物视频| 激情婷婷亚洲| 久久综合久色欧美综合狠狠| 亚洲欧美日韩在线观看a三区| 欧美小视频在线观看| 亚洲视频在线视频| 亚洲裸体在线观看| 欧美精品一区二区三区高清aⅴ| 亚洲福利免费| 亚洲大胆人体视频| 久久夜色精品国产欧美乱极品| 国内精品嫩模av私拍在线观看| 久久精品国产精品亚洲综合| 午夜日韩在线观看| 国产欧美日韩亚州综合| 亚洲欧美怡红院| 亚洲欧美国产精品桃花| 国产亚洲人成网站在线观看 | 精品白丝av| 久久一二三区| 亚洲精品日韩精品| 亚洲国产精品一区在线观看不卡| 欧美影院久久久| 亚洲欧美日韩在线观看a三区| 国产精品毛片a∨一区二区三区|国| 亚洲在线观看视频| 亚洲图片欧洲图片av| 国产区亚洲区欧美区| 久久久久久精| 男人插女人欧美| 在线视频亚洲一区| 亚洲伊人伊色伊影伊综合网| 国产欧美一区二区视频| 久久久噜噜噜久久狠狠50岁| 久久久精品久久久久| 亚洲精品国产精品乱码不99| 日韩午夜在线视频| 国内成人精品视频| 亚洲国产精品免费| 国产精品色网| 欧美v国产在线一区二区三区| 欧美激情成人在线视频| 欧美一级欧美一级在线播放| 久久精品一本| 亚洲一区二区三区成人在线视频精品| 亚洲自拍偷拍视频| 亚洲激情在线激情| 亚洲中字黄色| 亚洲人体大胆视频| 性欧美办公室18xxxxhd| 亚洲美洲欧洲综合国产一区| 亚洲欧美日韩精品久久久| 最新成人av在线| 午夜欧美理论片| 99av国产精品欲麻豆| 欧美中文在线视频| 中文久久乱码一区二区| 久久婷婷麻豆| 午夜视频久久久| 欧美激情亚洲| 欧美高清视频免费观看| 国产一区二区电影在线观看| 亚洲精品一区二区三区婷婷月| 韩国女主播一区| 中文国产一区| 亚洲看片一区| 久久中文字幕一区| 久久久久成人网| 国产精品久久中文| 日韩小视频在线观看专区| 亚洲国产美女| 久久久久99| 久久九九99视频| 国产精品伦理| 中文欧美日韩| 亚洲综合国产| 欧美日韩综合不卡| 亚洲另类视频| 一本色道久久88综合日韩精品 | 欧美三区在线视频| 亚洲第一区在线观看| 亚洲电影欧美电影有声小说| 欧美影院精品一区| 久久国内精品自在自线400部| 亚洲欧美日韩直播| 亚洲欧洲99久久| 亚洲已满18点击进入久久| 欧美黄色日本| 亚洲精品1区2区| 亚洲精品国产日韩| 欧美高清视频www夜色资源网| 母乳一区在线观看| 亚洲国产成人久久| 免费成人黄色| 亚洲黄页一区| 妖精成人www高清在线观看| 欧美日韩国产在线| 99热在这里有精品免费| 亚洲在线视频| 国产麻豆91精品| 久久av资源网| 欧美国产日韩二区| 在线一区免费观看| 国产精品美女诱惑| 久久国产加勒比精品无码| 女同一区二区| 中日韩高清电影网| 国产精品色一区二区三区| 久久精品在线观看| 亚洲激情视频在线| 亚洲欧美文学| 亚洲电影免费观看高清| 欧美日韩一区不卡| 久久福利资源站| 亚洲激情av在线| 午夜老司机精品| 亚洲国产成人久久| 欧美视频免费在线观看| 欧美资源在线观看| 亚洲黄色天堂| 先锋影音网一区二区| 亚洲第一黄网| 欧美日韩一区二区三区四区五区| 亚洲女优在线| 欧美激情精品久久久久久| 亚洲在线网站| 一色屋精品视频在线看| 欧美午夜视频在线| 美女视频黄 久久| 亚洲综合导航| 亚洲美女毛片| 久久中文字幕一区| 亚洲一区网站| 亚洲三级视频| 好吊日精品视频| 国产精品久久毛片a| 欧美精品乱码久久久久久按摩| 欧美影院久久久| 亚洲深夜福利视频| 亚洲国产小视频| 老司机一区二区三区| 欧美一区国产二区| 亚洲一区bb| 亚洲美女尤物影院| 在线日韩av永久免费观看| 国产精品亚洲第一区在线暖暖韩国| 欧美成人一品| 麻豆成人91精品二区三区| 久久se精品一区精品二区| 亚洲性人人天天夜夜摸| 99精品国产福利在线观看免费| 欧美高清视频免费观看| 美女主播一区| 蜜桃久久av| 免费成人av在线|