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

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

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

    Live a simple life

    沉默(zhu_xing@live.cn)
    隨筆 - 48, 文章 - 0, 評論 - 132, 引用 - 0
    數據加載中……

    《設計模式解析》:基于模式分析和設計?

            頭幾天閑著,睡覺前就重新翻了一下之前看過的一本書《設計模式解析》(原來看的是英文版,這次看的是中文版的,翻譯的有點...看起來挺累~_~。大家如果看,還是選原版的吧)。總覺得看到兩位作者(Alan Shalloway; James R.Trott  )好像試圖推薦一種自己的方法論:基于模式進行分析和設計。想來想去,有點自己的想法,寫出來,歡迎討論。
        
            【設計模式是一個工具】
            首先說明,本人設計經驗不是很多,而且一般也只是局限于模塊級的,所以,以下內容全部是亂彈琴了。
            設計模式是一個工具,而且僅僅是個工具。為什么這么說呢?個人覺得,我們一般進行設計的時候,最關鍵的三點應該是:需求分析結果、基本的OO設計原則和特定領域的經驗(例如行業解決方案等)。例如我舉這么一個例子,開閉原則(對擴展開放、對修改關閉)大家應該是很熟了,所以經常我們在設計一個模型層次的時候,這個時候腦子中哪來的什么設計模式啊,我們可能只想著將抽象層面的概念暴露出來,把實現層面的東西盡量隱藏在模塊內部,而且也希望用戶來擴展這種模型。所以很自然的做了模型的分層,上層是抽象層接口,對外暴露,同時暴露的還有一些公共抽象基類,供其他人擴展模型使用;下層是擴展實現,不需要對外暴露。
            到這里,相當于我們設計的模塊的模型已經基本固定了,現在就是如何實現這種設計初衷了。這個時候想到一個重要的工具,那就是設計模式。例如我們的模型分為了抽象接口層和實現層,我們如何支持既聯系又獨立變化呢?Bridge。 例如我們的模型看起來是樹狀的,怎么來封裝呢?Composite。  例如我們的模型之上可能又很多操作需要支持,我們想把這種操作和數據模型本身做松耦合拆分?Visitor。我們想把模型的構建和模型類類型定義做拆分,因為我們可能覺得用戶來構造這種數據模型節點可能很負責?Factory、Builder。...我想這類的問題有很多,無非就是在具體實現設計,用設計模式做個工具而已。而我們前面的需求分析、基本OO原則進行模塊整體處理等等,都是設計模式層面之上的東西。
            說到這里,我一直覺得設計模式就是個工具,而且是個后期實現設計的工具,不是前期主導設計的工具。

            【基于模式進行分析和思考】
            主要有如下幾個疑問:
            1、設計模式的過早引入,會不會導致開發者過多的關注于實現了呢???我們知道,如果進行模塊級別或者更高級別的代碼框架編寫,腦子里過早過多的闖入了實現細節,那不是會導致基于實現細節的思考來寫抽象層面的框架代碼???這樣,代碼還有核心的框架嗎???
            2、無容置疑,設計模式含有使用場景的經典濃縮,我們的需求肯定和這些場景有重疊的地方。但是,我們在整體考慮一個模塊層面的設計的時候,應該更多的是由基本設計原則來確定,希望這個模塊長成什么樣子,而不是去這個模塊怎么長成這個樣子。這可能類似于一個女的去整容,她對自己的需求整理的半天,同時又不想違反基本規則挑戰審美極限,最終去定下來:胸不要太大,胸形漂亮點,想明星***。接著醫生進來了,用一些工具或者藥物幫她實現了。 哈哈 ^_^
            3、讓設計模式更早一點的進入分析和設計,是不是需要對相應人員要求太高呢?既能借鑒設計模式中的場景來幫助思考,又能避免過于面向實現細節來設計。當然,高手是狂多的~_~
            4、是否很容易造成設計模式的過度使用呢?導致代碼框架在設計模式不自然的用法的基礎之上機械堆砌起來的,對同事提出了很大的挑戰呢....同時,也有可能將很大一部分注意力轉移到了如何使用設計模式上了,帶著有色眼睛去看需求,滿眼都是設計模式...

            
            PS:以上說的很多是個人一些疑問,絕對沒有貶低設計模式的意思。歡迎高手前來討論  ~_~

    本博客中的所有文章、隨筆除了標題中含有引用或者轉載字樣的,其他均為原創。轉載請注明出處,謝謝!

    posted on 2008-09-01 16:02 zhuxing 閱讀(1466) 評論(3)  編輯  收藏 所屬分類: 設計

    評論

    # re: 《設計模式解析》:基于模式分析和設計?  回復  更多評論   

    呵呵,我覺得Eclipse中的模式就有些過度,什么模式都有!不過因為是開源項目,好懂很重要。
    2008-09-01 17:43 | Always BaNg.

    # re: 《設計模式解析》:基于模式分析和設計?  回復  更多評論   

    過度倒是談不上。
    Eclipse的絕對部分代碼都是要給用戶來使用或者擴展的,高質量的代碼和高超的設計實現是基礎,設計模式這個工具被它們用活了。很多時候,在調試代碼的時候,順便撒兩眼,都很長見識,設計模式用戶很活

    看一下Eclipse本身代碼,再看一下WTP的源碼,差距就出來了~_~
    2008-09-01 17:58 | zhuxing

    # re: 《設計模式解析》:基于模式分析和設計?  回復  更多評論   

    沒錯,模式只是工具而已。前期的建模設計還是需要很多經驗以及抽象能力。
    對于你的疑問,以我自己的經驗:
    1、會的
    2、不要為了模式而模式。
    3、建模期間根本就還沒有模式用武之地
    4、沒經驗。
    模式應該看成中/低級設計工具。
    2008-09-02 09:45 | raof01
    主站蜘蛛池模板: 妞干网免费观看视频| 久久w5ww成w人免费| 国产大片91精品免费看3| 久久久国产亚洲精品| 成年女人视频网站免费m| 国产精品亚洲精品观看不卡| 性做久久久久久久免费看| 精品亚洲456在线播放| 免费观看理论片毛片| 久久亚洲色WWW成人欧美| 成人爱做日本视频免费| 免费无码午夜福利片 | 99久久免费精品国产72精品九九 | 国产亚洲精品免费视频播放| 国产亚洲成av人片在线观看| 日韩午夜理论免费TV影院| 亚洲成a人片毛片在线| 无码国产精品一区二区免费I6 | 亚洲欧美黑人猛交群| 国产美女被遭强高潮免费网站| 男女猛烈无遮掩视频免费软件| 2022中文字字幕久亚洲| 久久w5ww成w人免费| 亚洲日本va一区二区三区| 亚洲国产成人久久一区久久| 国精产品一区一区三区免费视频| 亚洲色图视频在线观看| 在线免费观看中文字幕| 国产精品免费观看视频| 自怕偷自怕亚洲精品| 免费欧洲美女牲交视频| 日本黄色动图免费在线观看| 亚洲Av无码一区二区二三区| 亚洲av无码国产精品色在线看不卡| 18禁超污无遮挡无码免费网站| 亚洲一区二区三区免费观看| 亚洲精品无码av天堂| 8888四色奇米在线观看免费看| mm1313亚洲国产精品无码试看| 久久99国产亚洲高清观看首页| 成全视频免费高清|