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

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

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

    andy's blog

    記錄我的所做所思

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      1 Posts :: 13 Stories :: 0 Comments :: 0 Trackbacks
    1:case context:
    ?現設計一個關于鴨子的系統,一個抽象類Duck,方法為quack(),swim(),abstract display()(具體子?? 類實現)。現需求為有部分類型的鴨子可以fly(),如何實現。
    ?? a:繼承:把fly()提到Duck類中,可實現代碼復用。
    ???????????????? 問題:違反繼承原則,父類的方法必須是所有子類都具有的行為,代碼維護 時如加入一? 種新類 型木頭鴨就沒有fly()行為。

    ? b:接口:寫一個flyable接口,所有有fly()行為的鴨子都實現這個接口。
    ??????????????? 問題:不能實現代碼復用。
    ??
    2: 重新分析:
    ??? fly()行為不是每個子類都有,fly()的具體實現可能會變化(有的是用翅膀飛行,有的是滑行, 或是其它沒有發現的方法,總之它是會變的(change,add))。
    ??? Design Principal:Identify the aspects of your application that vary and seperate them from what stays the same。
    ??? (take the parts that vary and encapsulate them,so that later you can alter and extend the parts that vary without affecting those don't?)
    ?? 解決方法:
    ????????? 寫FlyBehavior接口,和兩個實現類FlyWithWings和FlyNoWay,這樣把Fly的行為從duck類的內部提了出來,我們可以修改和增加行為而不影響其它代碼。
    ????????? 把FlyBehavior實例作為Duck的屬性,子類構造時可以通過new FlyBehavior的實現類設置此屬性,(因為FlyBehavior是接口,我們可以在Runtime 改變它),然后在Duck寫performFly()實現方法為代理flyBehavior.fly()。
    ??? Design Principal:Favor composition than inheirtance.
    ??? (1:change behavior at runtime.2:encapsulate a family of algorithms into their own classes)

    ?? Strategy pattern: define a family of algorithms,encapsulates each one,and make them interchangeable. Strategy lets the algorithm vary independently from the client that use it.

    3:現實應用:
    ?? 圖書打折計算:有多種打折策略,折扣可能會變動或增加。
    ?? 排序系統:先寫出各種排序實現,根據情況動態選擇排序策略。?
    posted on 2006-03-27 16:24 zhoumin 閱讀(75) 評論(0)  編輯  收藏 所屬分類: 設計模式

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲熟妇av午夜无码不卡| 亚洲高清无在码在线无弹窗| 国产伦精品一区二区免费| 亚洲成a人片77777kkkk| 免费观看激色视频网站bd| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲麻豆精品国偷自产在线91| 国产一精品一av一免费爽爽| 亚洲精品第一国产综合野| 亚洲国产综合专区在线电影| 日韩免费一区二区三区在线| 一级视频免费观看| 亚洲校园春色小说| 亚洲乱码国产一区网址| 91精品免费在线观看| 国产V片在线播放免费无码| 亚洲成在人线电影天堂色| 亚洲国产精品无码久久九九 | 少妇无码一区二区三区免费| 亚洲AV无码一区二区大桥未久 | 久久亚洲精精品中文字幕| 免费欧洲毛片A级视频无风险| 97视频免费观看2区| 一级一级毛片免费播放| 中文字幕亚洲情99在线| 亚洲精品自产拍在线观看动漫| 亚洲AⅤ无码一区二区三区在线| 国产曰批免费视频播放免费s| 成人片黄网站色大片免费观看cn| 亚洲综合精品伊人久久| 亚洲黄色片免费看| 国产亚洲精品影视在线产品| 免费看片A级毛片免费看| 久99久精品免费视频热77| 亚洲天堂免费在线视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲欧洲日本天天堂在线观看| 国产亚洲av片在线观看播放| 免费中文字幕不卡视频| 日韩a在线观看免费观看| 91情侣在线精品国产免费|