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

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

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

    活到老,學到老

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      9 Posts :: 1 Stories :: 2 Comments :: 0 Trackbacks

    2011年4月5日 #

         摘要:     概念:觀察者模式定義了一對多依賴,這樣一來,當一個對象改變狀態時,它的所有依賴者都會收到通知并自動更新。     舉個網上商城的例子,比如很多顧客對某個商品感興趣,把商品收藏,當該商品降價、促銷、有貨了等事件發生時,就會發Email通知顧客。     UML圖...  閱讀全文
    posted @ 2011-04-07 22:29 simon.shen 閱讀(330) | 評論 (1)編輯 收藏

        從今天開始,把常用的設計模式都簡單的整理一遍,希望每個星期能至少整理2個模式吧,先從簡單的策略模式開始。
        
        概念:它定義了一系列的算法,并將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法的變化不會影響到使用算法的客戶。
        
        策略模式很簡單,實際上就是OO中的多態,舉個例子,某商場要進行促銷,對于普通顧客打88折,對于銀卡客戶在88折基礎上再滿400減160,對于金卡客戶在88折基礎上再滿400減200。
        
        
    UML圖如下所示:
        

        接口DiscountStrategy代碼如下:
        
    public interface DiscountStrategy {
        
    public double discount(double
     sum);
    }

        類GeneralDiscountStrategy類代碼如下:
        
    public class GeneralDiscountStrategy implements DiscountStrategy {

        @Override
        
    public double discount(double sum) 
    {
            
    return sum * 0.88
    ;
        }


    }

        類SilverDiscountStrategy類代碼如下:
        
    public class SilverDiscountStrategy implements DiscountStrategy {

        @Override
        
    public double discount(double sum) 
    {
            sum 
    = sum * 0.88
    ;
            
    int t = (int) sum / 400
    ;
            sum 
    = sum - t * 160
    ;
            
    return
     sum;
        }

    }

        類GoldenDiscountStrategy代碼如下:
        
    public class GoldenDiscountStrategy implements DiscountStrategy {

        @Override
        
    public double discount(double sum) 
    {
            sum 
    = sum * 0.88
    ;
            
    int t = (int) sum / 400
    ;
            sum 
    = sum - t * 200
    ;
            
    return
     sum;
        }

    }

        類Cashier代碼如下:
        
    public class Cashier {
        
    private DiscountStrategy discountStrategy = new
     GeneralDiscountStrategy();

        
    public void getDiscountStrategy(CustomerLevel customerLevel) 
    {
            
    switch (customerLevel) 
    {
                
    case
     GENERAL:
                    discountStrategy 
    = new
     GeneralDiscountStrategy();
                    
    break
    ;
                
    case
     SILVER:
                    discountStrategy 
    = new
     SilverDiscountStrategy();
                    
    break
    ;
                
    case
     GOLDEN:
                    discountStrategy 
    = new
     GeneralDiscountStrategy();
                    
    break
    ;
            }

        }


        
    public double calculate(double price, int num) {
            
    return discountStrategy.discount(price *
     num);
        }

    }
    posted @ 2011-04-06 22:56 simon.shen 閱讀(349) | 評論 (0)編輯 收藏

         摘要:     這篇寫一個簡單的HelloWorld例子。     首先準備環境,我使用的JDK1.6,1.5應該也可以。還需要去oracle下載JMX RI包,地址為:http://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html,下載...  閱讀全文
    posted @ 2011-04-05 16:20 simon.shen 閱讀(2961) | 評論 (1)編輯 收藏

    主站蜘蛛池模板: 激情小说亚洲图片| 亚洲粉嫩美白在线| 怡红院免费的全部视频| 免费v片在线观看品善网| 香蕉视频免费在线播放| 午夜亚洲福利在线老司机| 一级毛片a女人刺激视频免费| 国产免费黄色大片| 深夜a级毛片免费视频| 亚洲国产精品一区二区第四页| 大片免费观看92在线视频线视频| 亚洲AⅤ无码一区二区三区在线 | 精品熟女少妇AV免费观看| 亚洲1234区乱码| 国产成人精品免费视频软件| 四虎精品免费永久免费视频| 亚洲午夜久久久久久久久久| 久久精品中文字幕免费| 亚洲色欲www综合网| 女人18毛片a级毛片免费视频| 国产亚洲美女精品久久久久| 亚洲女同成av人片在线观看 | 全免费一级毛片在线播放| 羞羞漫画页面免费入口欢迎你| 亚洲日韩欧洲乱码AV夜夜摸| 24小时免费看片| 国产精品国产亚洲区艳妇糸列短篇| 免费国产a国产片高清| 在线涩涩免费观看国产精品| 亚洲欧洲日韩综合| 四虎影视永久免费观看地址| 中文字幕不卡免费视频| 亚洲另类古典武侠| 亚洲黄片手机免费观看| 色欲国产麻豆一精品一AV一免费| 中文日韩亚洲欧美制服| 亚洲中文字幕无码永久在线 | 嫖丰满老熟妇AAAA片免费看| 国产天堂亚洲精品| 99久久亚洲精品无码毛片| 又黄又爽的视频免费看|