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("具体对象的操作!");
                }
            }
        }
    }
  • 相关阅读:
    spark foreachPartition
    spark mapPartition
    spark union intersection subtract
    spark join 类算子
    spark action 算子
    卷展栏模板
    锁定/解锁
    3D一些提示信息
    文件对话框多选
    吸取属性
  • 原文地址:https://www.cnblogs.com/gc2013/p/4018884.html
Copyright © 2011-2022 走看看