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

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

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

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

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

  定义接口代码如下:

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    
    namespace HelloWorld 
    { 
        /// <summary>
        /// 中国电接口
        /// </summary>
        public interface IChinaElectricity 
        { 
            /// <summary>
            /// 电压
            /// </summary>
            /// <returns></returns>
            int Voltage(); 
        } 
        /// <summary>
        /// 日本电接口
        /// </summary>
        public interface IJapanElectricity 
        { 
            /// <summary>
            /// 电压
            /// </summary>
            /// <returns></returns>
            int Voltage(); 
        } 
        /// <summary>
        /// 灯接口
        /// </summary>
        public interface IChinaLight 
        { 
            /// <summary>
            /// 发光
            /// </summary>
            /// <returns></returns>
            string Light(int voltage); 
        } 
    }