<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)

    搜索

    •  

    積分與排名

    • 積分 - 156629
    • 排名 - 390

    最新評論

    [關鍵字]: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 天堂露珠 閱讀(1009) 評論(0)  編輯  收藏 所屬分類: Pattern
    主站蜘蛛池模板: 亚洲国产成人VA在线观看| 国产亚洲成人在线播放va| 亚洲AV无码一区二区乱孑伦AS| 国产亚洲精品国看不卡| 猫咪免费人成在线网站| 国产三级在线免费| 亚洲AV综合色区无码一区爱AV| 中国一级毛片视频免费看| 亚洲免费观看在线视频| 亚洲色av性色在线观无码| 99免费在线观看视频| 免费国产小视频在线观看| 精品亚洲麻豆1区2区3区| 亚洲一区二区无码偷拍| 午夜视频免费观看| 国产亚洲精彩视频| 中文字幕无码播放免费| 亚洲综合区小说区激情区 | 亚洲午夜电影一区二区三区| 国产亚洲精品91| 亚洲国产人成精品| 中文在线日本免费永久18近| 亚洲国产精品国自产电影| 久久水蜜桃亚洲AV无码精品| 免费人成网站在线高清| 在线观看肉片AV网站免费| 亚洲精品在线视频观看| 香蕉视频在线观看免费国产婷婷 | 7777久久亚洲中文字幕蜜桃| 免费观看黄色的网站| 亚洲精品美女久久7777777| 亚洲午夜无码AV毛片久久| 一级毛片aaaaaa免费看| 亚洲午夜福利在线视频| 亚洲色偷偷狠狠综合网| 美女内射无套日韩免费播放| 亚洲一卡2卡3卡4卡5卡6卡| 久久亚洲AV无码西西人体| 91成人在线免费视频| 国产成人亚洲午夜电影| 久久久影院亚洲精品|