C#装饰者模式实例分析

 更新时间:2014年10月12日 09:58:17   投稿:shichen2014  
这篇文章主要介绍了C#装饰者模式,是C#中比较常见的设计模式,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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("具体对象的操作!");
      }
    }
  }
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • C# double和decimal数据类型以截断的方式保留指定的小数位数

    C# double和decimal数据类型以截断的方式保留指定的小数位数

    从事ASP.NET in C#开发快一年了,今天才知道,C#中保留小数位数时没有使用截断的方式
    2012-05-05
  • C#关键字Check简单介绍

    C#关键字Check简单介绍

    这篇文章主要介绍了C#关键字Check功能描述及注意事项,checke关键字主要用于对整型类型算术运算和转换显式启用溢出检查,本文通过程序演示给大家详细介绍,需要的朋友一起看看吧
    2022-04-04
  • C#分屏控件用法实例

    C#分屏控件用法实例

    这篇文章主要介绍了C#分屏控件用法实例,需要的朋友可以参考下
    2014-08-08
  • C#实现简单的登录界面

    C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。
    2015-11-11
  • c#实现flv解析详解示例

    c#实现flv解析详解示例

    本文提供的解析程序简单的把FLV分解了出来,如果要做FLV的修改操作的话,可以给每个类加个toStream方法,再历遍依次调用就可以写回到文件里了
    2014-01-01
  • C# Newtonsoft.Json用法详解

    C# Newtonsoft.Json用法详解

    本文主要介绍了C# Newtonsoft.Json用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • VS2010中lib与dll文件的生成与使用方法

    VS2010中lib与dll文件的生成与使用方法

    这篇文章主要介绍了VS2010中lib与dll文件的生成与使用方法,需要的朋友可以参考下
    2018-01-01
  • C#实现餐饮管理系统完整版

    C#实现餐饮管理系统完整版

    这篇文章主要为大家详细介绍了C#实现餐饮管理系统的完整版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C#中的引用类型以及特殊引用类型详解

    C#中的引用类型以及特殊引用类型详解

    本文详细讲解了C#中的引用类型以及特殊引用类型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C# DataTable常见用法汇总

    C# DataTable常见用法汇总

    这篇文章主要介绍了C# DataTable常见用法,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-08-08

最新评论