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

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

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

    隨筆 - 117  文章 - 72  trackbacks - 0

    聲明:原創(chuàng)作品(標(biāo)有[原]字樣)轉(zhuǎn)載時請注明出處,謝謝。

    常用鏈接

    常用設(shè)置
    常用軟件
    常用命令
     

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 156645
    • 排名 - 390

    最新評論

    [關(guān)鍵字]:java,design pattern,設(shè)計模式,《Java與模式》學(xué)習(xí),decorator,裝飾模式
    [環(huán)境]: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();
        }
    }


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

    /**
     * 具體構(gòu)件: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
    主站蜘蛛池模板: 九九免费久久这里有精品23| 亚洲熟伦熟女专区hd高清| 亚洲第一视频在线观看免费| 国产成人综合久久精品免费| 亚洲欧洲AV无码专区| 精品国产免费观看久久久| 亚洲av中文无码字幕色不卡 | 亚洲日本VA午夜在线电影| 99精品在线免费观看| 久久久久久亚洲av成人无码国产| 成人影片一区免费观看| 久久伊人久久亚洲综合| 最近中文字幕电影大全免费版| 色婷婷亚洲十月十月色天| 精品无码免费专区毛片| 亚洲欧洲另类春色校园网站| 最新欧洲大片免费在线| 亚洲av永久中文无码精品 | 免费无码AV电影在线观看| 亚洲中文字幕精品久久| 国产三级免费电影| 国产日韩精品无码区免费专区国产| 亚洲免费观看视频| 88av免费观看入口在线| 亚洲男人天堂2022| 免费一级特黄特色大片在线观看| 一区二区3区免费视频| 无码欧精品亚洲日韩一区| 97在线观看永久免费视频| 亚洲成av人片天堂网无码】| 久久久久亚洲爆乳少妇无| 91精品导航在线网址免费| 亚洲伦理一二三四| 亚洲AⅤ视频一区二区三区| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 久久精品a亚洲国产v高清不卡| 最近中文字幕国语免费完整 | 色久悠悠婷婷综合在线亚洲| 日日麻批免费40分钟无码| 亚洲AV无码国产精品永久一区| 国产亚洲精品激情都市|