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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    組合(Composite)模式--實踐

    組合(Composite)模式主要角色:
    1.Component角色
    2.Leaf角色
    3.Composite角色

    package com.pattern.composite;   
    /**  
     * 組件抽象角色  
     *  
     
    */
      
    public interface Component {   
           
        
    public void run();   
      
    }
      
    package com.pattern.composite;   
    /**  
     * 葉子角色  
     *  
     
    */
      
    public class Leaf implements Component{   
           
        
    public void run(){   
            System.out.println(
    " run invoked");   
        }
       
      
    }
      


    package com.pattern.composite;   
      
    import java.util.ArrayList;   
    import java.util.List;   
    /**  
     * 組合角色  
     * 實現組件角色接口,并且添加,刪除的也是組件角色  
     *   
     * Composite本來可以再包含Leaf和Composite的。而 Leaf和Composite 又都屬于 Component,所以增加,刪除 的是Component  
     *   
     * 組合模式主要分為2種  
     *   
     * 1 透明式  
     
        添加Component對象的操作定義在Component角色中,這樣的話不僅Composite需要實現這些方法,Leaf也需要實現這些方法,  
        而這些方法對于Leaf來說沒有任何意義,不過將系統實現統一起來了,因此對用戶來說透明(用戶無需區分Composite還是Leaf)  
        ,因為這些角色中都具備這些方法。  
          
       2 安全式  
     
        添加Component對象的操作定義在Composite角色中,這樣的話Leaf就無需實現這些方法(因為Leaf本身根本不需要實現這些方法)  
     *  
     
    */
      
    public class Composite  implements Component{   
           
        List
    <Component> list = new ArrayList<Component>();   
           
        
    //添加   
        public void addComponent(Component component){   
            list.add(component);   
        }
       
        
    //刪除   
        public void removeComponent(Component component){   
            list.remove(component);   
        }
       
           
        
    //get   
        public List<Component> getAll(){   
            
    return list;   
        }
       
           
        
    public void run(){   
            
    for(Component component : list){   
                component.run();   
            }
       
        }
       
      
    }
      


    package com.pattern.composite;   
      
    public class Client {   
      
        
    public static void main(String[] args){   
            Leaf leaf1 
    = new Leaf();   
            Leaf leaf2 
    = new Leaf();   
            Leaf leaf3 
    = new Leaf();   
               
            Composite composite 
    = new Composite();   
               
            composite.addComponent(leaf1);   
            composite.addComponent(leaf2);   
               
            Composite composite1 
    = new Composite();   
            composite1.addComponent(composite);   
            composite1.addComponent(leaf3);   
               
            composite1.run();   
               
        }
       


    posted on 2008-05-17 11:10 々上善若水々 閱讀(664) 評論(0)  編輯  收藏 所屬分類: 設計模式

    主站蜘蛛池模板: 亚洲精品视频在线免费| 亚洲成年人啊啊aa在线观看| 亚洲无人区码一二三码区别图片| 亚洲va在线va天堂va手机| 一个人免费观看在线视频www| 久久精品熟女亚洲av麻豆| 成人一a毛片免费视频| 香蕉国产在线观看免费| 78成人精品电影在线播放日韩精品电影一区亚洲 | 永久免费AV无码国产网站| 免费播放美女一级毛片| 亚洲午夜久久影院| 国产一级淫片视频免费看 | 拔擦拔擦8x华人免费久久| 成人妇女免费播放久久久| 亚洲成a人片在线看| 国产精品亚洲视频| 成年网站免费视频A在线双飞| fc2成年免费共享视频网站| 亚洲伊人久久大香线蕉在观| 亚洲成片观看四虎永久| 成人影片麻豆国产影片免费观看 | 日本一区二区在线免费观看| 亚洲欧洲国产综合| 亚洲熟妇av一区二区三区| 国产成在线观看免费视频| 成人精品一区二区三区不卡免费看| 精品国产综合成人亚洲区| 日本免费观看网站| 99久久免费看国产精品| v片免费在线观看| 国产亚洲成人久久| 精品免费久久久久久成人影院| 国产精品免费无遮挡无码永久视频 | 亚洲人成人77777网站不卡 | 亚洲影视自拍揄拍愉拍| 亚洲av日韩av不卡在线观看| 亚洲AⅤ无码一区二区三区在线| 在线看片v免费观看视频777| 久爱免费观看在线网站| 水蜜桃视频在线观看免费播放高清 |