首页 > 代码库 > C#装饰者模式实例代码

C#装饰者模式实例代码

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 装饰者{    class Program    {        static void Main(string[] args)        {            ConcreteComponent con = new ConcreteComponent();            ConcreteDecoratorA a = new ConcreteDecoratorA();            a.SetComponent(con);            a.Operation();            a.AddBehavior();            Console.WriteLine("============================");            ConcreteDecoratorB B = new ConcreteDecoratorB();            B.SetComponent(a);            a.AddBehavior();            B.Operation();            B.AddBehavior();        }        public abstract class Component        {            public abstract void Operation();        }        abstract class Decorator : Component        {            private Component component;            public void SetComponent(Component component)            {                this.component = component;            }            public override void Operation()            {                if (component != null)                {                    component.Operation();                }            }        }        class ConcreteDecoratorA : Decorator        {            public override void Operation()            {                base.Operation();            }            public void AddBehavior()            {                Console.WriteLine("装饰A类的操作!");            }        }        class ConcreteDecoratorB : Decorator        {            public override void Operation()            {                base.Operation();            }            public void AddBehavior()            {                Console.WriteLine("装饰B类的操作!");            }        }        public class ConcreteComponent : Component        {            public override void Operation()            {                Console.WriteLine("具体对象的操作!");            }        }    }}

C#装饰者模式实例代码