<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)  編輯  收藏 所屬分類: 設計模式

    主站蜘蛛池模板: 中文字幕乱码一区二区免费| 中文字幕免费在线看电影大全 | 中国一级特黄高清免费的大片中国一级黄色片| 免费a级毛片高清视频不卡| 久久亚洲春色中文字幕久久久| 中国国语毛片免费观看视频| 精品国产亚洲男女在线线电影 | 毛片免费全部免费观看| 亚洲国产人成在线观看| 中文字幕免费在线看线人 | 亚洲精品无码永久在线观看你懂的| 香蕉视频免费在线播放| 免费人成在线观看播放国产| 在线视频亚洲一区| 又黄又大又爽免费视频| 一级看片免费视频囗交| 亚洲桃色AV无码| 久久午夜免费鲁丝片| 亚洲色av性色在线观无码| 亚洲精品在线免费观看| 亚洲一区在线视频观看| 好男人看视频免费2019中文| 亚洲hairy多毛pics大全| 亚洲av无码不卡私人影院| 久久精品成人免费国产片小草| 亚洲熟妇无码AV在线播放| 性色午夜视频免费男人的天堂| 亚洲综合成人网在线观看| 2021久久精品免费观看| 亚洲欧美成人一区二区三区| 亚洲成a人片在线观看日本麻豆| eeuss免费天堂影院| 亚洲电影一区二区三区| 在线视频免费观看高清| 精品国产亚洲第一区二区三区| 亚洲国产精品自在拍在线播放| a在线观看免费视频| 亚洲女人初试黑人巨高清| 国产精品无码一区二区三区免费| 无码AV动漫精品一区二区免费| 亚洲美女又黄又爽在线观看|