首页 > 其他 > 详细

学习笔录——大话设计模式——组合模式

时间:2020-07-09 23:11:23      阅读:85      评论:0      收藏:0      [点我收藏+]

学习笔录——设计模式

组合模式

组合模式模式

简介

将对象组合成树形结构以表示‘部分_整体‘的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性

代码示例


    public abstract class ComponentBasae
    {
        public abstract void Add(ComponentBasae component);
        public abstract void Remove(ComponentBasae component);

        public abstract void Display(int depth);
    }

    /// <summary>
    /// 枝节点
    /// </summary>
    public class Composite : ComponentBasae
    {
        private List<ComponentBasae> children = new List<ComponentBasae>();

        public override void Add(ComponentBasae component)
        {
            this.children.Add(component);
        }

        public override void Remove(ComponentBasae component)
        {
            this.children.Remove(component);
        }

        public override void Display(int depth)
        {
            System.Console.WriteLine($"{depth}");

            this.children.ForEach(item=>
            {
                item.Display(depth);
            });
        }
    }

    /// <summary>
    /// 叶节点
    /// </summary>
    public class Leaf : ComponentBasae
    {
        public override void Add(ComponentBasae component)
        {
            System.Console.WriteLine("叶不能添加叶");
        }

        public override void Remove(ComponentBasae component)
        {
            System.Console.WriteLine("不能从叶删除");
        }

        public override void Display(int depth)
        {
            System.Console.WriteLine($"{depth}");
        }
    }

    static void Main(string[] args)
    {
        Composite root = new Composite();
        root.Add(new Leaf());

        Composite root1 = new Composite();
        root1.Add(new Leaf());
        root.Add(root1);

        root.Display(1);

    }

学习笔录——大话设计模式——组合模式

原文:https://www.cnblogs.com/caiyangcc/p/13276560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!