zoukankan      html  css  js  c++  java
  • 组合设计模式

     /// <summary>
        /// 组合设计模式的基类。
        /// </summary>
        abstract class BaseElement
        {
            public abstract void Add(BaseElement e) { }
    
            public abstract void Remove(BaseElement e) { }
    
            public abstract void Duty() { }
        }
    
        /// <summary>
        /// 字符
        /// </summary>
        public class CharElement:BaseElement
        {
            public override void Add(BaseElement e)
            {
                throw new NotImplementedException();
            }
    
            public override void Remove(BaseElement e)
            {
                throw new NotImplementedException();
            }
    
            public override void Duty()
            {
                Console.WriteLine("i am a char");
            }
        }
    
        /// <summary>
        /// 图片
        /// </summary>
        public class GraphicElement:BaseElement
        {
            public override void Add(BaseElement e)
            {
                throw new NotImplementedException();
            }
    
            public override void Remove(BaseElement e)
            {
                throw new NotImplementedException();
            }
    
            public override void Duty()
            {
                throw new NotImplementedException();
            }
        }
    
        /// <summary>
        /// 段落,一个段落有字符和图片组合而成
        /// </summary>
        public class ParagraphyElement:BaseElement
        {
            List<BaseElement> children = new List<BaseElement>();
    
            public override void Add(BaseElement e)
            {
                children.Add(e);
            }
    
            public override void Remove(BaseElement e)
            {
                children.Remove(e);
            }
    
            public override void Duty()
            {
                foreach (var item in children)
                {
                    item.Duty();
                }
            }
        }
        

    组合设计模式

  • 相关阅读:
    MapReduce1.x与MapReduce2.x差异
    刷题60—排序数组
    刷题59— 圆圈中最后剩下的数字
    刷题58—地图分析
    刷题57—单词的压缩编码
    刷题56—卡牌分组
    刷题55—车的可用捕获量
    刷题54—三维形体的表面积
    刷题53—按摩师
    刷题52—链表的中间结点
  • 原文地址:https://www.cnblogs.com/363546828/p/3293180.html
Copyright © 2011-2022 走看看