<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 閱讀(73) 評論(0)  編輯  收藏 所屬分類: 設計模式

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品99久久久久久| 免费观看美女裸体网站| 国产成人亚洲毛片| 亚洲视频小说图片| 亚洲精品国产品国语在线| 在线观看亚洲免费| 国产卡二卡三卡四卡免费网址| 精品国产麻豆免费人成网站| eeuss免费影院| 蜜臀亚洲AV无码精品国产午夜.| 亚洲国产情侣一区二区三区| 亚洲国产成人精品无码区在线观看| 亚洲AV成人潮喷综合网| 国产精品无码一二区免费| 24小时免费直播在线观看| 在线看片韩国免费人成视频| 四虎国产成人永久精品免费| 美女网站在线观看视频免费的| 日韩精品无码永久免费网站| 亚洲AV无码国产一区二区三区| 亚洲人成综合网站7777香蕉| 亚洲不卡1卡2卡三卡2021麻豆| 久久久久亚洲AV无码专区首JN| 久久精品国产亚洲av麻豆色欲 | 亚洲香蕉久久一区二区| 亚洲视频在线观看不卡| 久久亚洲AV成人无码软件| 久久丫精品国产亚洲av不卡 | 久久一区二区三区免费播放| 精品成人免费自拍视频| 精品一区二区三区免费| 日韩精品免费在线视频| 久久久久久夜精品精品免费啦| 日本免费一区二区三区| 18未年禁止免费观看| 曰批全过程免费视频网址| 成人黄色免费网址| 无码人妻精品一二三区免费| 精品久久久久久久免费人妻| 国产aa免费视频| 91麻豆精品国产自产在线观看亚洲|