`

设计模式学习笔记六——Adapter模式

    博客分类:
  • .Net
阅读更多

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

应用:旧代码复用、类库迁移等。

场景:原有一只SP/2接口的鼠标,现想插在ThinkPad T60上使用,由于T60鼠标接口为USB接口,所以需要一个转换器进行转接。

说明:适配器包括两种实现结构:对象适配器和类适配器。类适配器使用多继承,带来不良的高耦合,一般不使用。


结构

Adapter模式结构图


代码实现

namespace DesignPattern.Adapter
{

    /**//// <summary>
    /// 原有类
    /// </summary>
    public class SP2Mouse
    {
        public void MoveSP2()
        {
        }

        public void TuneSP2()
        {
        }
    }

    /**//// <summary>
    /// 客户希望的接口
    /// </summary>
    interface IMouse
    {
        void Init();
        void Move();
        void Tune();
        void End();
    }

   /**//// <summary>
   /// 对象适配器
   /// </summary>
    public class MouseAdapter : IMouse
    {
        SP2Mouse sp2Mouse;  // 被适配对象

        public MouseAdapter()
        {
            sp2Mouse = new SP2Mouse();
        }

        public void Init()
        {
        }

        public void Move()
        {
            sp2Mouse.MoveSP2();
            
            // Do something else
        }

        public void Tune()
        {
            sp2Mouse.TuneSP2();

            // Do something else
        }

        public void End()
        {
        }
    }
}

 

分享到:
评论

相关推荐

    JAVA学习笔记————————

    通过阅读和学习这些JAVA学习笔记,开发者不仅可以掌握JAVA编程的基本技能,还能深入了解其设计理念,从而更好地应对各种实际开发问题。不断更新和完善自己的JAVA知识体系,对于成为一名优秀的JAVA开发者至关重要。

    Python 笔记源码——内含python后端&机器学习等.zip

    Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...

    《设计模式学习笔记》

    《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。设计模式是面向对象软件设计中的核心概念,它们为解决常见的设计问题提供了标准...

    设计模式学习笔记大全

    以上就是压缩包中的设计模式学习笔记涉及到的主要内容。通过对这些模式的理解和应用,开发者可以更好地解决软件设计中的问题,提升软件的质量和可维护性。每种模式都有其适用场景,理解其背后的意图和应用场景是关键...

    java设计模式学习笔记

    ### Java设计模式学习笔记——外观模式(Facade Pattern) #### 概述 设计模式是软件工程领域中一种解决常见问题的可复用解决方案。在Java开发过程中,掌握设计模式能够帮助开发者更好地组织代码结构,提高代码的...

    设计模式学习笔记总结

    这里我们聚焦于C#语言中的设计模式学习笔记,涵盖了多种经典的设计模式,如合成模式、桥梁模式、装饰模式、享元模式、门面模式、命令模式、工厂方法、策略模式、代理模式以及状态模式。下面将对这些模式逐一进行详细...

    学习笔记之——基于pytorch的FSRCNN

    学习笔记之——基于pytorch的FSRCNN 把我的代码上传了,后续有更正会更新这个代码

    狂神Java学习笔记————前端入门——html、css、JavaScript学习代码

    【狂神Java学习笔记——前端入门——HTML、CSS、JavaScript学习代码】是针对初学者的一份详实的学习资料,这份笔记记录了跟随B站知名up主“遇见狂神说”的java系列视频中关于前端开发的基础内容。笔记内容不仅与视频...

    C++基础学习笔记————网课

    个人网课学习笔记

    Spring.NET学习笔记22——整合WCF

    Spring.NET学习笔记22——整合WCF(应用篇) http://www.cnblogs.com/GoodHelper/archive/2010/05/15/SpringNet_Wcf.html

    Spring.NET学习笔记25——整合Quartz.NET例子

    刘冬编写Spring.NET学习笔记25——整合Quartz.NET例子。 原文: http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_QuartzNet.html

    Spring.NET学习笔记26——整合NVelocity例子

    刘冬编写的Spring.NET学习笔记26——整合NVelocity例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/20/SpringNet_NVelocity.html

    Spring.NET学习笔记21——整合WebService的例子

    刘冬编写的Spring.NET学习笔记21——整合WebService的例子。 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/19/SpringNet_WebService.html

    设计模式学习笔记.ppt

    设计模式学习笔记.ppt 自己写的一点学习笔记。

    2024数据结构-学习笔记-入门必看建议收藏

    2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据结构——学习笔记——入门必看【建议收藏】2024数据...

    Android学习笔记(十)——实现新闻列表

    【第一部分】历史文章: Android学习笔记(一)——创建第一个Android项目 ...Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share

    HeadFirst设计模式学习笔记

    《HeadFirst设计模式学习笔记》是一份详尽的资料,旨在帮助读者深入理解并掌握设计模式这一编程领域的核心概念。设计模式是软件工程中的一种最佳实践,它在解决常见问题时提供了一种标准的解决方案,使得代码更易于...

    Spring.NET学习笔记20——整合Remoting(应用篇)的例子

    刘冬编写Spring.NET学习笔记20——整合Remoting(应用篇)的例子 原文:http://www.cnblogs.com/GoodHelper/archive/2009/11/19/SpringNet_Remoting.html

Global site tag (gtag.js) - Google Analytics