zoukankan      html  css  js  c++  java
  • 设计模式Adapter模式的五分钟

    五分钟一个设计模式。来形容叙述的设计模式的最简单方法。看到许多其他设计模式,请点击五分钟一个设计模式系列
    http://blog.csdn.net/daguanjia11/article/category/3259443

    认识适配器模式

    适配器模式的定义是:将一个类的接口转换成client希望的另外一个接口。

    适配器模式使得原本因为接口不兼容而不能一起工作的那些类能够一起工作。

    适配器模式的主要功能是转换接口,目的是复用已有功能。而不是实现新接口,适用于功能实现了但接口不兼容的场合。

    适配器组合了原有对象,而且提供与一个client兼容的接口,实际的工作由原有接口完毕。

    演示样例代码

    以下的演示样例代码中主要包括以下部分:

    1. Target:client须要的接口,与特定领域相关
    2. Adaptee:被适配对象
    3. Adapter:适配器

    来上代码:

    /// <summary>
    /// client须要的接口,与特定领域相关
    /// </summary>
    public interface Target
    {
        /// <summary>
        /// client请求处理的方法
        /// </summary>
        void Request();
    }
    /// <summary>
    /// 被适配对象
    /// </summary>
    public class Adaptee
    {
        /// <summary>
        /// 原有的已经实现了的方法,但接口发生了变化
        /// </summary>
        public void OldRequest()
        {
            Console.WriteLine("原来的方法运行了");
        }
    }
    /// <summary>
    /// 适配器
    /// </summary>
    public class Adapter : Target
    {
        /// <summary>
        /// 组合被适配的对象
        /// </summary>
        private Adaptee adaptee;
    
        public Adapter(Adaptee adaptee)
        {
            this.adaptee = adaptee;
        }
    
        public void Request()
        {
            this.adaptee.OldRequest();
        }
    }

    以下看client怎样使用

    class Program
    {
        static void Main(string[] args)
        {
            //创建被适配对象
            Adaptee adaptee = new Adaptee();
            //创建client须要调用的接口对象
            Target target = new Adapter(adaptee);
            //请求处理
            target.Request();
        }
    }

    程序运行结果:
    原来的方法运行了

  • 相关阅读:
    自定义控件小结进阶篇
    SQL注入语句 (很全)
    C# winform DataGridView 属性说明 [C# .NET]
    MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现
    精妙SQL语句大全
    sql语句
    注销时关闭当前窗体,返回登入界面
    C#中DataGridView的使用 [C# .NET]
    C#开发 WinForm中窗体显示和窗体传值相关知识
    HDU2553 (N皇后)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5030674.html
Copyright © 2011-2022 走看看