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 Studio/Gradle构建
    Android sdk 搭建
    map排序
    单例
    一些rtsp实现的开源代码
    MySQL性能优化/调优:默认配置的修改
    mysql 优化 实现命中率100%
    mysql性能优化-慢查询分析、优化索引和配置
    findbugs规则
    网络编程及并发编程总结
  • 原文地址:https://www.cnblogs.com/gc2013/p/4018884.html
Copyright © 2011-2022 走看看