zoukankan      html  css  js  c++  java
  • 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("具体对象的操作!");
                }
            }
        }
    }
  • 相关阅读:
    个人工作总结07
    软件项目第一个Sprint评分
    丹佛机场行李系统没能及时交工的原因
    第一次团队冲刺 5
    第一次团队冲刺4
    第一次团队冲刺3
    第一次团队冲刺2
    第一次团队冲刺 1
    风险评估
    团队开发——第一篇scrum报告
  • 原文地址:https://www.cnblogs.com/minotmin/p/3109909.html
Copyright © 2011-2022 走看看