⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decoratorstructural.cs

📁 使用C#程序将23个常用设计模式进行列表显示
💻 CS
字号:
using System;
using System.Windows.Forms;
using System.Text;

namespace DesignPattern.DecoratorStructural
{
    class DecoratorStructural : AbstractPattern
    {
        public static void Run(TextBox tbInfo)
        {
            s_tbInfo = tbInfo;
            s_tbInfo.Text = "";

            // Create ConcreteComponent and two Decorators 
            ConcreteComponent c = new ConcreteComponent();
            ConcreteDecoratorA d1 = new ConcreteDecoratorA();
            ConcreteDecoratorB d2 = new ConcreteDecoratorB();

            // Link decorators 
            d1.SetComponent(c);
            d2.SetComponent(d1);
            d2.Operation();

            // Wait for user 
            //Console.Read();
        }
    }

    // "Component" 
    abstract class Component
    {
        public abstract void Operation();
    }

    // "ConcreteComponent" 
    class ConcreteComponent : Component
    {
        public override void Operation()
        {
            DesignPattern.FormMain.OutputInfo("ConcreteComponent.Operation()");
        }
    }

    // "Decorator" 
    abstract class Decorator : Component
    {
        protected Component component;
        public void SetComponent(Component component)
        {
            this.component = component;
        }

        public override void Operation()
        {
            if (component != null)
            {
                component.Operation();
            }
        }
    }

    // "ConcreteDecoratorA" 
    class ConcreteDecoratorA : Decorator
    {
        private string addedState;
        public override void Operation()
        {
            base.Operation();
            addedState = "New State";
            DesignPattern.FormMain.OutputInfo("ConcreteDecoratorA.Operation()");
        }
    }

    // "ConcreteDecoratorB" 
    class ConcreteDecoratorB : Decorator
    {
        public override void Operation()
        {
            base.Operation();
            AddedBehavior();
            DesignPattern.FormMain.OutputInfo("ConcreteDecoratorB.Operation()");
        }
        void AddedBehavior()
        {
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -