• 适配器模式(Adapter)


    1  概述
    遇到这样的问题:需要用到已有的功能,功能的数据和行为都是正确的,但是功能的调用繁杂并要在多个地方调用。在正常的思维下,我们将功能的调用写在一个公共类的一个方法中,这样我们就已经达到了隔离已有复杂功能目的。但这样做有如下缺点:
    1>如果这个类有多个公开的方法,则不能对这个类进行统一的管理;
    2>如果这个类中的方法相互依赖很强,那么写公共方法也会比较烦;
    最后,我们用OO的语言开发,应该以OO的思想来解决这个问题。上述的问题,通过大师们的总结,已经形成一个统一的解决模式:适配器模式;
    2  GOF中的定义
    2.1 意图:
      将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。——GOF
    2.2 对象适配器结构图

    2.3 说明:
    Adaptee:第三方组件或旧系统中复杂的类;
    Target:新系统所希望的接口;
    Adapter:将Adaptee转换成Target。

    3 示例实现

    View Code
        /// <summary>
        /// 旧系统中的已有的类
        /// </summary>
        public class Adaptee
        {
            public void SendMail(string mailtitle,string mailAddress) { }
        }
    
        /// <summary>
        /// 客户代码希望的接口
        /// </summary>
        public interface ISendMail
        {
            void SendMail();
        }
    
        /// <summary>
        /// 适配器类
        /// </summary>
        public class Adapter:ISendMail
        {
            protected Adaptee adaptee;
            public Adapter(Adaptee ada) 
            {
                this.adaptee = ada;
            }
    
            private string tilte;
    
            public string Tilte
            {
                get { return tilte; }
                set { tilte = value; }
            }
    
            private string address;
    
            public string Address
            {
                get { return address; }
                set { address = value; }
            }
            public void SendMail()
            {
                adaptee.SendMail(Tilte, Address);
            }
        }

    4 总结
    总的来说,适配器模式就是在不改变原有代码的前提下,将不兼容或复杂的接口,转换成我们需要的接口。

  • 相关阅读:
    各大云服务器的对比
    程式上传的功能修改
    如何免费拥有一个聊天机器人
    自学网站大全(值得收藏)
    三菱PLC串口通信的IO控制
    免费下载知网、万方等数据库文档教程
    QT--Android之全配置教程
    QT--Android之Android环境配置
    QT--Android之Java环境配置
    安装纯净的Windows或者Ubuntu系统教程
  • 原文地址:https://www.cnblogs.com/dataadapter/p/2679501.html
Copyright © 2020-2023  润新知