• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    淺析設計模式之策略模式—:為什么總是繼承[2]

    發布: 2009-11-03 11:04 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 27次 | 進入軟件測試論壇討論

    領測軟件測試網

    淺析設計模式之策略模式—:為什么總是繼承[2]  uml模型

    關鍵字:uml

        重復的代碼確實減少了很多,但是還有一些重復(心里在默默的罵道:TMD,為什么C#不支持多繼承,不然我就可以消除重復了),也許你還在自我陶醉的欣賞著自己多么完美的類繼承層次,在那里感慨OO的強大。但是隨著具體的高校越來越多,而且有的高校的報到步驟居然要發生改變,你小心的在中間那一層添加新的類,并將一些高校的實現轉移,每一次你都非常小心(這個系統正在高速的運轉,每改錯一步,就有多少莘莘學子入不了學)。你心里終于對OO不滿起來:為什么,為什么大家都說OO是救世主,但是卻救不了我。答案是因為你將OO的設計原則遺忘在課本里了。開閉原則、優先使用組合,你還記得嗎?

        在我們很多OO程序員的腦子里總是存在這樣一個觀念:沒有繼承的程序不是OO的程序,看到重復總是想到繼承。當初我也是這樣想的,有的時候看到自己畫的龐大的繼承類圖,心里在樂呵呵的笑?衫^承總是不給面子,一個小小的變化就將這個看似穩定的體系弄的支離破碎。

        還是回到我們的例子,在這個例子中變化的是各高校的報到步驟,本著發現變化、封裝變化、隔離變化的原則我們將報到的步驟分離出來,獨立成類。

        這樣我們就可以復用這些步驟了,有新的步驟實現只要添加更多的子類,并不需要修改原來的代碼。(作業:在繼續閱讀之前根據上面的類圖自己寫出實現的代碼來)這就是所謂的策略設計模式:策略模式定義了算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立于算法的客戶(DP)。

        策略模式有三種參與者:

        一、 Context 這個類保存了對策略的引用,并且調用實際的策略實現,有可能還提供一個接口,讓策略可以訪問它內部的數據,在這里就是我們的“高!鳖。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 繼承 模式 淺析 設計


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>