zoukankan      html  css  js  c++  java
  • 【2016-10-15】【坚持学习】【Day6】【组合模式】

    哈哈,今天偷懒了,在晚上只看了一个组合模式。

    例子:

    树结构,有一些是树节点,一些是叶子节点。

    比如,文件夹树结构,一个是文件夹节点,一个是文件节点,虽然都是树的节点,但是具体的业务肯定是区别的。

    代码:

    abstract class Component
        {
            public abstract void Add(Component c); //增加成员
            public abstract void Remove(Component c); //删除成员
            public abstract Component GetChild(int i); //获取成员
            public abstract void Operation();  //业务方法
        }
    
        class Leaf : Component
        {
            public override void Add(Component c)
            {
                //异常处理或错误提示 
            }
    
            public override void Remove(Component c)
            {
                //异常处理或错误提示 
            }
    
            public override Component GetChild(int i)
            {
                //异常处理或错误提示
                return null;
            }
    
            public override void Operation()
            {
                //叶子构件具体业务方法的实现
            }
        }
    
        class Composite : Component
        {
            private List<Component> list = new List<Component>();
    
            public override void Add(Component c)
            {
                list.Add(c);
            }
    
            public override void Remove(Component c)
            {
                list.Remove(c);
            }
    
            public override Component GetChild(int i)
            {
                return (Component)list[i];
            }
    
            public override void Operation()
            {
                //容器构件具体业务方法的实现,将递归调用成员构件的业务方法
                foreach (Object obj in list)
                {
                    ((Component)obj).Operation();
                }
            }
        }

    作者:zscmj
    出处:http://www.cnblogs.com/zscmj/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    第 4 章 配置
    Jdbc连接数据库大全
    第 3 章 体系结构(Architecture)
    嵌入式开发工具介绍与下载
    Hibernate3的DetachedCriteria支持
    引用 DetachedCriteria
    第 5 章 持久化类(Persistent Classes)
    超市营销的方向和重点
    超越对手——项目经理应有的工作态度
    WBS应该多细致?
  • 原文地址:https://www.cnblogs.com/zscmj/p/5965597.html
Copyright © 2011-2022 走看看