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

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

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

    隨筆 - 117  文章 - 72  trackbacks - 0

    聲明:原創作品(標有[原]字樣)轉載時請注明出處,謝謝。

    常用鏈接

    常用設置
    常用軟件
    常用命令
     

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 155667
    • 排名 - 391

    最新評論

    [關鍵字]:java,design pattern,設計模式,《Java與模式》學習,decorator,裝飾模式
    [環境]:StarUML5.0 + JDK6
    [作者]:Winty (wintys@gmail.com)
    [正文]:

    package pattern.decorator;

    /**
     * 裝飾模式:Decorator Pattern
     * @version 2009-6-5
     * @author Winty(wintys@gmail.com)
     */
    public class DecoratorTest{
        public static void main(String[] args){
            Component component;
            component = new ConcreteComponent();
            component.doSomething();
            System.out.println("");
            
            //透明的裝飾模式
            Component decorator;
            decorator = new ConcreteDecorator(component);
            decorator.doSomething();
            System.out.println("");

            //半透明的裝飾模式
            ConcreteDecorator decorator2;
            decorator2 = new ConcreteDecorator(component);
            decorator2.doSomething();
            decorator2.doOtherThings();
        }
    }


    /**
     * 抽象構件:Component
     */
    interface Component{
        public abstract void doSomething();
    }

    /**
     * 具體構件:ConcreteComponent
     */
    class ConcreteComponent implements Component{
        @Override
        public void doSomething(){
            System.out.println("do something");
        }
    }

    /**
     * 裝飾:Decorator
     */
    abstract class Decorator implements Component{
        private Component comp;

        public Decorator(Component comp){
            this.comp = comp;
        }

        @Override
        public void doSomething(){
            comp.doSomething();
        }
    }

    /**
     * 具體裝飾:ConcreteDecorator
     */
    class ConcreteDecorator extends Decorator{
        public ConcreteDecorator(Component comp){
            super(comp);
        }

        @Override
        public void doSomething(){
            super.doSomething();
            doMoreThings();
        }

        private void doMoreThings(){
            System.out.println("do more things.");
        }

        /**
         * 新增的方法不是Component接口的一部分,
         * 所以不能通過Component接口透明地訪問。
         */
        public void doOtherThings(){
            System.out.println("do other things.");
        }
    }
    posted on 2009-06-07 22:33 天堂露珠 閱讀(1004) 評論(0)  編輯  收藏 所屬分類: Pattern
    主站蜘蛛池模板: 两个人的视频高清在线观看免费 | 亚洲人成图片小说网站| 三年片在线观看免费西瓜视频| 久久久综合亚洲色一区二区三区| 国产桃色在线成免费视频| 日韩亚洲人成网站| 亚洲中文字幕久久精品无码APP| 精品无码无人网站免费视频| 亚洲成av人无码亚洲成av人| 亚洲日本乱码在线观看| 啦啦啦中文在线观看电视剧免费版| 一级A毛片免费观看久久精品 | 久久夜色精品国产噜噜亚洲a| 久久久久亚洲AV无码专区网站| 免费下载成人电影| 本道天堂成在人线av无码免费 | 国产无遮挡无码视频免费软件 | 国产麻豆成人传媒免费观看| 亚洲综合色丁香婷婷六月图片 | 国产午夜亚洲精品| 日本亚洲成高清一区二区三区| 成人毛片18岁女人毛片免费看| a毛片全部免费播放| 亚洲av无码av在线播放| 亚洲综合精品香蕉久久网97| 亚洲国产精品丝袜在线观看| 无码国产精品一区二区免费| 中文字幕免费在线看线人动作大片| 亚洲成a人片在线不卡一二三区| 亚洲AV无码乱码国产麻豆穿越| 免费一级毛片免费播放| 亚洲免费网站观看视频| 无码囯产精品一区二区免费| 国产免费播放一区二区| 国产亚洲Av综合人人澡精品| 亚洲一区二区三区高清不卡| 亚洲一区二区成人| 国产亚洲精品a在线无码| 亚洲av无码不卡私人影院| 女人张腿给男人桶视频免费版| 91青青青国产在观免费影视|