<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Thinker

      - long way to go...

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      24 隨筆 :: 0 文章 :: 143 評論 :: 0 Trackbacks
    這是一篇譯文,你可以參看本文在TSS上的 英文原文,這是我的第一篇譯文,有很多不當(dāng)之處請見諒,若能指出則更好了。

    在GoF的設(shè)計(jì)模式那本書中作者清楚的指出在使用設(shè)計(jì)模式的時(shí)候所使用的語言是非常重要的:
    The choice of programming language is important because it influences one's point of view. Our patterns assume Smalltalk/C++ language-level features, and that choice determines what can and cannot be implemented easily. (Design Patterns, p.4)(程序設(shè)計(jì)語言的選擇非常重要,它將影響人們理解問題的出發(fā)點(diǎn)。我們的設(shè)計(jì)模式采用了 Smalltalk 和 C++ 層的語言特性,這個選擇實(shí)際上決定了哪些機(jī)制可以方便的實(shí)現(xiàn)。)

    不幸的是,這一點(diǎn)經(jīng)常被忽略,程序員們經(jīng)常把設(shè)計(jì)模式和方法混用。Martin Fowler 解釋了兩者的不同
    Recipes tend to be more particular, usually tied to a particular programming language and platform. Even when patterns are tied to a platform, they try to describe more general concepts.(方法依賴于特定的編程語言和平臺使它更加的特殊。即使是當(dāng)模式依賴于平臺的時(shí)候,他們也只是去描述更加一般的概念。)

    如果你曾經(jīng)看見一個看起來象C++方法集合的Java或者C#的應(yīng)用程序,你就知道了混合這兩個概念所產(chǎn)生的壞處了。不管你對模式和方法這兩個概念之間的差異理解到何種程度,你所能想到的程序設(shè)計(jì)語言就只是你設(shè)計(jì)時(shí)所使用的程序語言。這也是Prags鼓勵每一個人每年學(xué)習(xí)一門新的語言的一個原因。你可以結(jié)合你所知道的所有程序設(shè)計(jì)語言來進(jìn)行設(shè)計(jì),但至少你不是一個絕望的“鄉(xiāng)下人”(?)。

    編程語言的發(fā)展弱化了模式和方法之間的概念模糊。在1998年,Peter Norvig 辯駁道大部分的 GoF 模式在 Dylan 和 Lisp 中都看不到蹤影或者非常簡單的使用。在那以后,Greg Sullivan 也對 Scheme 做出相同的觀點(diǎn)。Jan Hannemann 也指出 Java+AspectJ 也是如此。設(shè)計(jì)模式表現(xiàn)的不如方法那樣好。他們至多平分秋色。

    在編碼層,大部分的設(shè)計(jì)模式都是有代碼異味的。當(dāng)程序員在 Review 代碼的時(shí)候看到了一個設(shè)計(jì)模式,他們陷入了睡夢般的熟悉。醒醒吧!那是設(shè)計(jì)模式呢還是來自某種古老的語言的一種陳舊的方法?

    http://m.tkk7.com/qujinlong123/
    posted on 2007-05-20 02:30 Long 閱讀(2381) 評論(2)  編輯  收藏 所屬分類: 雜談

    評論

    # re: 設(shè)計(jì)模式是代碼的異味(翻譯)? 2007-05-26 15:29 老李
    雖然俺以前不是學(xué)這個的,也來學(xué)習(xí)學(xué)習(xí)啦  回復(fù)  更多評論
      

    # re: 設(shè)計(jì)模式是代碼的異味(翻譯)? 2007-05-28 13:27 匿名
    舉個例子吧。  回復(fù)  更多評論
      

    主站蜘蛛池模板: 日韩免费无码视频一区二区三区 | 亚洲欧洲日产国码久在线观看| 免费在线观看一区| 性做久久久久免费观看| 亚洲人成色99999在线观看| 毛片高清视频在线看免费观看| 国产精品亚洲四区在线观看 | 久久香蕉国产线看免费| 亚洲av无码一区二区三区不卡 | 国产片AV片永久免费观看| 亚洲伊人久久大香线蕉啊| av大片在线无码免费| 亚洲国产系列一区二区三区 | 在线观看无码的免费网站| 亚洲人成网站999久久久综合| 国产aa免费视频| 黄桃AV无码免费一区二区三区| 亚洲中文字幕无码一久久区| 久久久久久久99精品免费观看| 亚洲一区二区影院| 毛片免费全部播放一级| 一区二区免费国产在线观看| 亚洲Av无码专区国产乱码DVD| 亚洲一级毛片免费在线观看| 亚洲美国产亚洲AV| 亚洲伊人久久综合中文成人网| 在线观看免费无码专区| 亚洲人成网站看在线播放| 亚洲国产婷婷综合在线精品| 久久综合九色综合97免费下载| 亚洲人精品亚洲人成在线| 亚洲精品乱码久久久久久蜜桃| 久久大香香蕉国产免费网站| 亚洲性色AV日韩在线观看| 中文亚洲成a人片在线观看| 免费观看无遮挡www的小视频| 亚洲AV噜噜一区二区三区 | 91精品成人免费国产片| 亚洲欧美成人一区二区三区| 亚洲国产精品一区二区久久hs| 成人免费视频88|