• 设计模式:装饰模式


    装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

    namespace Decorator
    {
        public abstract class Component
        {
            public abstract void Operation();
        }
        public class ConcreteComponent:Component
        {
            public override void Operation()
            {
                Console.WriteLine("具体对象的操作");
            }
        }
        public abstract class Decorator:Component
        {
            protected Component component;
            public void SetComponent(Component component)
            {
                this.component = component;
            }
            public override void Operation()
            {
                if(component!=null)
                {
                    component.Operation();
                }
            }
        }
        public class ConcreteDecoratorA:Decorator
        {
            private string addedState;
            public override void Operation()
            {
                base.Operation();
                addedState = "New State";
                Console.WriteLine("具体装饰对象A的操作");
            }
        }
        public class ConcreteDecoratorB : Decorator
        {
            public override void Operation()
            {
                base.Operation();
                AddedBehavior();
                Console.WriteLine("具体装饰对象B的操作");
            }
            private void AddedBehavior()
            {
    
            }
        }
    }
    View Code

    测试代码:

                ConcreteComponent c = new ConcreteComponent();
                ConcreteDecoratorA d1 = new ConcreteDecoratorA();
                ConcreteDecoratorB d2 = new ConcreteDecoratorB();
                d1.SetComponent(c);
                d2.SetComponent(d1);
                d2.Operation();
  • 相关阅读:
    STM32中管脚利用
    阻抗匹配
    无功功率与补偿
    宏的灵活应用例子
    串口接入检测与串口命令解析
    16 款最流行的JavaScript 框架
    不可错过的10个超棒jQuery表单操作代码片段
    20 个用于处理页面滚动效果的 jQuery 插件
    11 个最佳 jQuery 滚动条插件
    jQuery的搜索关键词自动匹配插件
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5253118.html
Copyright © 2020-2023  润新知