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

 看到有些朋友很喜歡用軟命令的方式來提供接口, 什么是軟命令, 其實就是一個接口,根據參數的不同,可以實現N多的功能(我不知道"軟命令"這名詞是我原創還是現有的,我們暫時就這樣稱呼吧).

看看現實中有哪些產品已經成功應用了這種特性?

首先想到是的是windows窗口的消息處理函數,用C的方式是類似這樣:
LRESULT MessageProc(HWND hWnd, UINT nMsgType, WPARAM wParam, LPARAM lParam);

用C++實現是類似這樣
class CWindow
{
public:
LRESULT MessageHander(UINT nMsgType, WPARAM wParam, LPARAM lParam);
};
當然里面實現時會有一堆switch case.

接下來會想到COM里IDispatch接口的Invoke函數,外部無論調用對象的什么方法或屬性,都通過這個自動化接口。

再往廣義上想,DOS里的命令行,Windbg的操作命令等,其實都是"軟命令"。

再廣一點, 整個Web服務器就是一個"軟命令"入口,比如URL API,都是通過一個單獨的Http請求入口,可以實現各種各樣的任務。

我們對上面的例子進行抽象,就會發現他們的共性是對外接口固定,但是內部功能確是可以擴充,很符合開放封閉這條設計原則。往設計模式上考慮, 其實就是單一入口的Facade模式。

這么方便的接口,那么是不是在我們平時的設計中應該盡量使用呢? 我看未必。 如果按照這種設計,任何類都只要一個MethodCallRequest方法就好了,根據這個入口,我會根據你的命令類型,調用相應的方法。如果你真的所有的類都這樣做了,等類層次一復雜,我看你的代碼就不用維護了。當然也有語言確實是這么做的,比如Objective-c, 它內部對象的每個函數調用,都是通過查找對象的function table, 然后再調用對應的function,但它的前提是語言本身提供這個特性。但是像C++這種靜態強類型的語言,讓對象的每個方法有明確的用途,讓編譯器幫你檢測對象是不是有相應的方法,一來清晰,而來高效,何樂而不為?

那么究竟什么時候適用這種接口方式呢?

我的看法是只有當你的模塊是一個單獨的子系統,當對外提供功能時,才可以這么做。這里的子系統不一定要是一個很大的概念,比如一個窗口,一個COM對象都可以稱為簡單的子系統,但是它的前提要求是獨立,對外,并且最好你可以預見到以后它的功能會改變和擴充。

那么有沒有不用這種"軟命令"的接口方式,但是我也可以不斷擴充對象提供的方法呢? 有的,設計模式里的Visitor模式就是為此而準備的,這里就不多說了。
posted on 2012-06-13 10:08 Richard Wei 閱讀(3411) 評論(5)  編輯 收藏 引用 所屬分類: 設計模式

FeedBack:
# re: 軟命令接口的適用場合
2012-06-13 11:21 | 華夏之火
在這種軟命令下,只能給對象發送消息,對象可以采取種種方式響應消息,甚至可在對象外面響應消息,在外面截取消息,不讓消息流進到之前的消息處理中。這樣,就不會存在什么復雜類層次結構。這種方式,在下認為并不是“單一入口的Faced模式”,而是幾乎包含了所有接口的變種橋接模式  回復  更多評論
  
# re: 軟命令接口的適用場合
2012-06-13 13:29 | Richard Wei
@華夏之火
這個怎么說呢,Faced模式強調的是一個復雜系統對外有一個統一的入口; Bridge模式強調的是分層的概念,將抽象層和實現層分離,二層可以分別獨立的變化。感覺上面的"軟命令"方式,從對外暴露的接口的簡單統一性來說比較符合Faced模式;但是從內部實現來說,你要理解成同一消息可以有多種處理方式,Bridge模式也可以。
  回復  更多評論
  
# re: 軟命令接口的適用場合[未登錄]
2012-06-13 21:04 | jacky
Faced模式是什么模式,沒聽說過啊,應該是facade吧  回復  更多評論
  
# re: 軟命令接口的適用場合
2012-06-13 21:08 | Richard Wei
@jacky
確實應該是facade, 只留意大概讀音,沒想到拼寫錯誤。
多謝指正。  回復  更多評論
  
# re: 軟命令接口的適用場合
2012-06-22 01:34 | tb
多些指教了   回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久久久一区二区| 欧美激情成人在线| 在线观看视频免费一区二区三区| 国产精品夫妻自拍| 欧美国产一区在线| 免费日韩视频| 国产视频在线观看一区二区三区| 欧美人与禽性xxxxx杂性| 亚洲女ⅴideoshd黑人| 久久久久久久久久久成人| 亚洲视频碰碰| 久久不见久久见免费视频1| 欧美制服丝袜第一页| 久久精品一区二区| 欧美77777| 加勒比av一区二区| 性娇小13――14欧美| 亚洲经典在线看| 欧美一区日本一区韩国一区| 国产精品黄色在线观看| 亚洲一区二区三区中文字幕在线| 欧美黄色网络| 麻豆亚洲精品| 99re6这里只有精品| 亚洲国产高清在线| 欧美www视频| 一区二区三区国产盗摄| 一区二区高清视频| 国产精品你懂的| 久久精品一区四区| 久久人人精品| 日韩视频在线一区| 一区二区三区国产精品| 国产色产综合产在线视频| 久久影院午夜片一区| 欧美a级理论片| 国产情人综合久久777777| 亚洲免费小视频| 国产精品久久久久三级| 欧美综合国产精品久久丁香| 久久av在线| 永久91嫩草亚洲精品人人| 欧美成人久久| 欧美日韩成人免费| 香蕉免费一区二区三区在线观看| 午夜精品久久久久久久久| 国内精品久久久久影院色| 蜜臀av性久久久久蜜臀aⅴ| 欧美精品免费在线| 亚欧成人在线| 欧美xxx在线观看| 亚洲一区二区三区视频| 亚洲国产精品一区二区久| 亚洲一区三区电影在线观看| 亚洲天堂av图片| 亚洲国产精品99久久久久久久久| 欧美日本在线| 久久综合久久美利坚合众国| 免费的成人av| 羞羞答答国产精品www一本| 久久男女视频| 亚洲欧美视频一区| 久久夜色精品亚洲噜噜国产mv| 在线视频欧美日韩精品| 久久久久久久一区| 亚洲一区二区在线免费观看| 日韩亚洲欧美在线观看| 中文欧美字幕免费| 国产精品视频观看| 欧美**字幕| 国产欧美日韩精品丝袜高跟鞋| 最新国产精品拍自在线播放| 国产亚洲一区二区三区| 亚洲最黄网站| 亚洲精品久久久久久久久| 翔田千里一区二区| 亚洲欧美日韩久久精品| 欧美激情久久久久| 久久综合狠狠综合久久综青草| 国产精品美女久久久久av超清 | 欧美激情五月| 亚洲美女av在线播放| 久久精品中文字幕一区二区三区| 欧美高清你懂得| 久久综合导航| 韩国一区二区三区美女美女秀| aa级大片欧美三级| 亚洲国产精品久久久久婷婷老年| 母乳一区在线观看| 久久精品国产99| 国产精品久久久对白| 亚洲精品欧洲| 伊人蜜桃色噜噜激情综合| 亚洲女同性videos| 亚洲欧美日韩国产成人| 欧美日韩国产a| 亚洲国产欧美日韩| 亚洲国产综合91精品麻豆| 久久久www成人免费无遮挡大片| 久久精品1区| 国产一区二区中文| 久久精品欧美日韩| 久久亚洲影院| 在线免费观看一区二区三区| 久久久久国产精品人| 久热精品视频在线观看一区| 国产在线观看精品一区二区三区| 午夜在线成人av| 看片网站欧美日韩| 在线欧美电影| 欧美日韩精品在线| 中日韩高清电影网| 先锋影音国产一区| 亚洲激情视频| 亚洲午夜小视频| 加勒比av一区二区| 久久精品国产2020观看福利| 国产精品久久久久久久久免费桃花| 久久女同互慰一区二区三区| 久久精品国产久精国产爱| 久久成人免费网| 欧美精彩视频一区二区三区| 亚洲第一视频网站| 狠狠狠色丁香婷婷综合激情| 国产精品xxxav免费视频| 亚洲精品一区二区三区婷婷月| 亚洲无限av看| 国产欧美日韩专区发布| 久久性天堂网| 日韩亚洲精品视频| 亚洲日本中文字幕| 国产精品国产三级国产普通话99| 亚洲第一精品福利| 一本色道婷婷久久欧美| 亚洲欧美日韩一区二区在线| 欧美一区二区三区男人的天堂 | 99国内精品| 亚洲国产精品久久久久婷婷老年| 亚洲午夜国产成人av电影男同| 久久国产精彩视频| 欧美日韩一区二区三区视频 | 久久久久99| 蜜月aⅴ免费一区二区三区| 国产精品户外野外| 久久久亚洲一区| 国产精品v片在线观看不卡| 欧美成人情趣视频| 午夜精品剧场| 亚洲精品国产精品国产自| 国产精品影院在线观看| 欧美96在线丨欧| 亚洲精品国产品国语在线app| 亚洲影视在线播放| 亚洲精品美女久久久久| 国产精品入口福利| 玖玖视频精品| 欧美在线播放一区| 国产精品99久久99久久久二8 | 免费成人黄色av| 亚洲欧洲在线一区| 国产日韩欧美一二三区| 美女视频黄 久久| 亚洲欧美日韩综合aⅴ视频| 亚洲精品日韩综合观看成人91| 久久久久久亚洲精品杨幂换脸| 亚洲综合色丁香婷婷六月图片| 一本色道久久| 日韩亚洲一区二区| 雨宫琴音一区二区在线| 国产亚洲欧美日韩精品| 国产精品久久久久久久浪潮网站 | 亚洲国产精品女人久久久| 国产伦精品一区二区三区免费迷| 欧美日本一道本在线视频| 亚洲九九精品| 亚洲无线视频| 美女网站久久| 欧美成ee人免费视频| 日韩视频在线观看一区二区| 亚洲欧美电影院| 亚洲毛片播放| 久久久国产精彩视频美女艺术照福利| 一本色道久久综合亚洲精品按摩 | 国产精品亚洲一区| 免费久久99精品国产自| 国产精品视频导航| 亚洲图色在线| 国产精品青草久久久久福利99| 久久综合精品国产一区二区三区| 在线中文字幕一区| 亚洲免费黄色| 亚洲精品国产精品乱码不99按摩| 在线免费日韩片| 樱花yy私人影院亚洲| 欧美天堂亚洲电影院在线播放| 欧美精品一区二区久久婷婷| 久久亚洲一区二区三区四区| 久久久999精品免费| 美女图片一区二区| 亚洲国产cao|