组合设计模式

 /// <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();
            }
        }
    }
    

 

组合设计模式

 

posted @ 2013-08-31 15:42  viola  阅读(194)  评论(0编辑  收藏  举报