• 23种设计模式之适配器模式(Adapter)


    适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在类适配器模式中,通过使用一个具体类将适配者适配到目标接口中;在对象适配器模式中,一个适配器可以将多个不同的适配者适配到同一个目标。

    /// <summary>  
    /// 圆形类  
    /// </summary>  
    public class Circle : Shape  
    {  
        private XXCircle pcx = new XXCircle();//实例化XXCircle对象  
        public void Display()  
        {  
            pcx.DisplayIt();//让XXCircle做实际工作  
        }  
    }  
      
    /// <summary>  
    /// 线性  
    /// </summary>  
    public class Line : Shape  
    {  
        public void Display()  
        {  
            //program code  
        }  
    }  
      
    /// <summary>  
    /// 面积  
    /// </summary>  
    public class Square : Shape  
    {  
        public void Display()  
        {  
            //program code  
        }  
    }  
    /// <summary>  
    /// 显示形状接口  
    /// </summary>  
    public interface Shape  
    {  
        void Display();  
    }  
      
    /// <summary>  
    /// 具体实际工作的类  
    /// </summary>  
    public class XXCircle  
    {  
        /// <summary>  
        /// 实际显示  
        /// </summary>  
        public void DisplayIt()  
        {  
            Console.WriteLine(this.GetType().Name + ":我来显示啦!");  
        }  
    }  
    /// <summary>  
    /// 简单工厂类  
    /// </summary>  
    public class Factory  
    {  
        /// <summary>  
        /// 获取形状对象  
        /// </summary>  
        /// <param name="type">类别</param>  
        /// <returns>形状对象</returns>  
        public Shape GetShapeInstance(int type)  
        {  
            switch (type)  
            {  
                case 1: return new Line();//线性  
                case 2: return new Square();//面积  
                case 3: return new Circle();//圆形  
                default: return null;//
            }  
        }  
    }  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            //适配器模式  
            int type = 3;  
            Factory factory = new Factory();  
            Shape s;  
            s = factory.GetShapeInstance(type);  
            if (s == null)  
            {  
                Console.WriteLine("Error get the instance!");  
                return;  
            }  
            s.Display();  
            return;  
        }  
    }  

  • 相关阅读:
    mac zsh选择到行首的快捷键
    phalcon下拉列表
    tinycore remaster方法
    bundle安装方法
    centos7安装avahi
    pydoc介绍
    macosx下apache的默认用户为daemon
    centos配置ssh免密码登录后,仍提示输入密码
    xampp默认项目文件夹htdocs
    微信开发:"errcode": -1000,"errmsg": "system error"错误的解决办法
  • 原文地址:https://www.cnblogs.com/guwei4037/p/6689341.html
Copyright © 2020-2023  润新知