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("具体对象的操作!");
                }
            }
        }
    }
  • 相关阅读:
    【Android
    【数据结构】之链表(C语言描述)
    【数据结构】之顺序表(C语言描述)
    【Android
    【Android
    【Android
    【Android
    【Android
    在线HTTP速度测试(响应时间测试)及浏览器兼容测试
    阿里云 腾讯云 服务器挂载数据盘
  • 原文地址:https://www.cnblogs.com/gc2013/p/4018884.html
Copyright © 2011-2022 走看看