关闭

.NET简谈设计模式之(装饰者模式)

发表于:2011-9-14 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王清培    来源:51Testing软件测试网采编

  其他几个灯具代码都一样的我就不贴出来了。

  调用代码:

  • using System;  
  • using System.Collections.Generic;  
  • using System.Text;  
  • namespace ConsoleApplication1  
  • {  
  •     class Program  
  •     {  
  •         static void Main(string[] args)  
  •         {  
  •             红色灯泡 reddengpao = new 红色灯泡();//灯泡  
  •             矩形灯具 juxingdengju = new 矩形灯具();//装饰  
  •             多边形灯具 duobianxingdengju = new 多边形灯具();//装饰  
  •             duobianxingdengju.添加装饰的灯泡(reddengpao);  
  •             juxingdengju.添加装饰的灯泡(duobianxingdengju);  
  •             Console.WriteLine(juxingdengju.打开灯());  
  •             Console.ReadLine();  
  •         }  
  •     }  
  • }
  •   装饰者模式就讲的差不多了。这里面用到了接口、继承、多态等特性,其实接口就是用来消除类之间的耦合,继承是为了拿对象的行为,多态是为了将职责动态的添加到灯具中去。模式中的一些特性是会随着环境的不同而不同,有些时候根本不需要接口,但是为了进行多类型之间的扩展就必须进行接口编程。

      总结:我个人觉得装饰者模式用的场合不是很多,继承就是为了拿对象的行为,然后在单独引用一个对象的实例,这样就等于浪费了一个对象的内存。简单的装饰者可以不用继承,如果需要统一调用的话就需要继承了,接口只是用来表示装饰者不仅仅可以装饰某一个对象,而是某一类对象。根据需要的不同模式可以适当的进行修改,以适应当前环境。

    相关链接:

    浅谈.NET策略模式

    55/5<12345
    《2023软件测试行业现状调查报告》独家发布~

    关注51Testing

    联系我们

    快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

    法律顾问:上海兰迪律师事务所 项棋律师
    版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
    投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

    沪ICP备05003035号

    沪公网安备 31010102002173号