zoukankan      html  css  js  c++  java
  • 适配器模式

    作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

    模式中的角色:

    目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。

    需要适配的类(Adaptee):需要适配的类或适配者类。

    适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。

    UML图:

    代码:

    /// <summary>
        /// 定义客户端期待的接口
        /// </summary>
        public class Target
        {
            /// <summary>
            /// 使用virtual修饰以便子类可以重写
            /// </summary>
            public virtual void Request()
            {
                Console.WriteLine("This is a common request");
            }
        }
    
        /// <summary>
        /// 定义需要适配的类
        /// </summary>
        public class Adaptee
        {
            public void SpecificRequest()
            {
                Console.WriteLine("This is a special request.");
            }
        }
    
        /// <summary>
        /// 定义适配器
        /// </summary>
        public class Adapter:Target
        {
            // 建立一个私有的Adeptee对象
            private Adaptee adaptee = new Adaptee();
    
            /// <summary>
            /// 通过重写,表面上调用Request()方法,变成了实际调用SpecificRequest()
            /// </summary>
            public override void Request()
            {
                adaptee.SpecificRequest();
            }
        }

    调用:

     // 对客户端来说,调用的就是Target的Request()
                Target target = new Adapter();
                target.Request();
  • 相关阅读:
    Git 命令使用小笔记
    一个关于if else容易迷惑的问题
    浏览器与Node环境下的Event Loop
    镜面反射
    Socket通信原理
    Git
    vba工具
    为什么要用prototype
    Oracle 列转换为行, 逗号拼接.
    JS中的phototype
  • 原文地址:https://www.cnblogs.com/nygfcn1234/p/3386023.html
Copyright © 2011-2022 走看看