关闭

C#实例解析适配器设计模式

发表于:2013-3-05 09:12

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

 作者:李飞麟    来源:51Testing软件测试网采编

  今天看到一个园子里的朋友写了一篇ASP.NET的适配器设计模式文章。其中提到了把输入的电压转换成灯泡适合的电压,这样才能使灯泡正常工作。正巧,我也在学习设计模式,其中翻看了一下秦小波写的《设计模式与禅》这本书,其中提到了设计模式的定义为:

  将一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作。

  适配器模式又叫变压器模式,也叫包装模式。

  这里作者举得例子并没有实现把一个接口或类转换到另外一个可以使用的类,仅仅是把输入参数做了判断,这是不是适配器模式我不予置评,下面贴出我实现的适配器模式。

  我们知道,中国的电压是220V,而日本的电压为110V,我们中国生产的电灯泡一般额定电压为220V,如果想要这个灯泡在日本能够正常工作就必须使用一个适配器,把110V电压转换成220V电压。

  定义接口代码如下:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.  
  6. namespace HelloWorld  
  7. {  
  8.     /// <summary> 
  9.     /// 中国电接口 
  10.     /// </summary> 
  11.     public interface IChinaElectricity  
  12.     {  
  13.         /// <summary> 
  14.         /// 电压 
  15.         /// </summary> 
  16.         /// <returns></returns> 
  17.         int Voltage();  
  18.     }  
  19.     /// <summary> 
  20.     /// 日本电接口 
  21.     /// </summary> 
  22.     public interface IJapanElectricity  
  23.     {  
  24.         /// <summary> 
  25.         /// 电压 
  26.         /// </summary> 
  27.         /// <returns></returns> 
  28.         int Voltage();  
  29.     }  
  30.     /// <summary> 
  31.     /// 灯接口 
  32.     /// </summary> 
  33.     public interface IChinaLight  
  34.     {  
  35.         /// <summary> 
  36.         /// 发光 
  37.         /// </summary> 
  38.         /// <returns></returns> 
  39.         string Light(int voltage);  
  40.     }  
  41. }

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号