zoukankan      html  css  js  c++  java
  • 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;  
        }  
    }  

  • 相关阅读:
    Element ui表单验证结束后再次打开清空验证信息
    oracle 新建用户 给用户设定权限
    oracle时间问题
    ORACLE 创建作业JOB例子
    ORACLE SQL PLUSE 创建作业 执行作业
    VS发布,签名出错 试图加载该页时出错,路径的形式不合法。
    Oracle 系统权限
    PL/SQL Developer 8.0 创建 Oracle Jobs 的疑惑
    信息系统系项目管理考试技巧
    水晶报表分组统计中如何让字段值居中显示
  • 原文地址:https://www.cnblogs.com/guwei4037/p/6689341.html
Copyright © 2011-2022 走看看