<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      裝飾模式

      裝飾模式:動態的給一個對象添加一些額外的職責,就增加功能來說,裝飾模式比生成子類更加靈活。
       
      Component定義一個對象接口,可以給這些對象動態的添加職責。
      ConcreteComponent是定義了一個具體的對象,也可以給這個對象添加一些職責。
      Decorator,裝飾抽象類,繼承了Component,從外類來擴展Component類的功能,但對于Component來說,是無需知道Decorator的存在。
      ConcreteDecoratorA和ConcreteDecoratorB是具體裝飾對象,起到給Component添加職責的功能。
       
      abstract class Component{
           public abstract void Operation();
      }
      class ConcreteComponent extend Component{
           public Operation(){
               console.log(“具體對象操作”);
           }
      }
      abstract class Decorator extend Component{
           protected Component component;
           public setComponent(Component component){
                this.component = component;
           }
           public Operation(){
                if(this.component != null){
                     component.Operation();
                }
           }
      }
      class ConcreteDecoratorA extend Decorator{
           private string addedState;
           public Operation(){
                super.Operation();
                addedState = "new State";
                console.log("具體裝飾對象A操作");
           }
      }
      class ConcreteDecoratorB extend Decorator{
           public Operation(){
                super.Operation();
                addedBehavior();
                console.log("裝飾對象B的操作");
           }
           private addedBehavior(){}
      }
      class Main{
           ConcreteComponent c = new ConcreteComponent();
           ConcreteDecoratorA d1 = new ConcreteDecoratorA();
           ConcreteDecoratorB d2 = new ConcreteDecoratorB();
      
           d1.setComponent(c);
           d2.setComponent(d1);
           d2.Operation();
      }
      

        

       該模式利用setComponent來對對象進行包裝,每個裝飾對象的實現就和如何使用這個對象分離開了,每個裝飾對象只關心自己的功能,不需要關心如何被添加到對象鏈當中。
       
       
      總結:裝飾模式是為已有功能動態的添加更多功能的方式。
      當系統需要新功能的時候,是向舊的類添加新的代碼。這些新加的代碼通常裝飾了原有類的核心職責或主要行為。
      如果我們在主類中加入了新的字段,新的方法和新的邏輯,從而增加了主類復雜度,而這些新加入的東西僅僅是為了滿足一些只在某種特定情況下才會執行的特殊行為的需要。而裝飾模式卻提供了一個非常好的解決方案,它把每個要裝飾的功能放在單獨的類中,并讓這個類包裝它所需要的裝飾對象,因為,當需要執行特殊行為時,特護代碼就可以在運行時根據需要有選擇的、按順序的使用裝飾功能包裝對象。
       
       
       
       
       
       
       
      posted @ 2017-04-26 14:31  櫻良orz  閱讀(371)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产一区二区视频在线看| 亚洲欧美中文日韩v在线97| 亚洲精品美女久久7777777| 亚洲av永久一区二区| 国产精品三级中文字幕| 亚洲AV高清一区二区三区尤物| 91福利一区福利二区| 国产一区二区亚洲av| 久久无码高潮喷水| 99在线精品视频观看免费| 亚洲国产精品区一区二区| 91孕妇精品一区二区三区| 欧洲精品码一区二区三区| 少妇人妻偷人免费观看| 久久人妻精品白浆国产| 国产毛片基地| 少妇又爽又刺激视频| 精品中文人妻在线不卡| 国产亚洲精品综合一区二区| 亚洲成年轻人电影网站WWW| 黑龙江省| 国产色婷婷亚洲99精品小说| 国产伦一区二区三区久久| 国产精品久久久久久久专区| 免费无码又爽又刺激成人| 丰满老熟妇好大bbbbb| 蜜臀av黑人亚洲精品| 亚洲情A成黄在线观看动漫尤物| 国产一级二级三级毛片| 北条麻妃42部无码电影| 亚洲精品第一页中文字幕| 日日躁夜夜躁狠狠久久av | 国产一区二区三区不卡在线看| 精品无码成人久久久久久| 日夜啪啪一区二区三区| 国产福利精品一区二区| 在线视频一区二区三区色| 欧美一区二区三区啪啪| 亚洲av影院一区二区三区| 亚洲欧美精品一中文字幕| 久久精品成人免费看|