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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    dN/dS与分子进化常用软件
    samtools和bcftools使用说明
    变异检测VarScan软件使用说明
    线程可以共享进程里的哪些资源
    函数调用与系统调用的区别
    海量数据统计出现次数
    海量数据查找问题
    建立高并发模型需要考虑的点
    言简意赅的TIME_WAIT
    常用的TCP选项
  • 原文地址:https://www.cnblogs.com/zscmj/p/5965597.html
Copyright © 2011-2022 走看看