适配器模式的分析、结构图及基本代码「建议收藏」

适配器模式的分析、结构图及基本代码

大家好,又见面了,我是全栈君。



以下说说适配器模式:

定义:将一个类的接口转换成客户希望的还有一个接口。

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

适用地方:在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类。可是接口又与复用环境要求不一致的情况。
注意:要在两方都不太easy改动的时候再使用适配器模式适配。
开放-封闭原则:是说软件实体(类、模块、函数等等)应该能够扩展,可是不可修改。这个原则事实上有两个特征。一个是说‘对于扩展时开放的’。还有一个是说‘对于更改时封闭的’。在我们最初编写代码的时候,如果变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。

即面对需求,对程序的修改是通过新增代码进行的,而不是更改现有的代码。这就是‘开放-封闭原则’的精神所在,遵循这个原则能够带来面向对象技术所声称的巨大优点。也就是可维护、可扩展、可复用、灵活性好。
结构图:

适配器模式的分析、结构图及基本代码「建议收藏」
基本代码:

using System;
using System.Collections.Generic;
using System.Text;

namespace 适配器模式
{
    class Program
    {
        static void Main(string[] args)
        {
            Target target = new Adapter();
            target.Request();

            Console.Read();

        }
    }

    class Target
    {
        public virtual void Request()
        {
            Console.WriteLine(“普通请求”);
        }
    }

    class Adaptee
    {
        public void SpecificRequest()
        {
            Console.WriteLine(“特殊请求”);
        }
    }

    class Adapter : Target
    {
        private Adaptee adaptee = new Adaptee();

        public override void Request()
        {
            adaptee.SpecificRequest();
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115308.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux docker离线安装部署_下载安装包

    linux docker离线安装部署_下载安装包Docker离线安装部署

    2022年9月26日
  • Oracle数据库优化的经验总结建议收藏

    个人理解,数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化,物理的是指oracle产品

    2021年12月20日
  • 久坐后的提醒_久坐提醒app

    久坐后的提醒_久坐提醒app前几天突然间醒悟了,日子不能这样过,主要是因为最近身体不适,从毕业到现在一年多了,一直在写程序,忙啊忙,突然发现身体好弱上个四层楼都累了,大学的时候跑步、踢球,经常煅炼身体,可是这一年多跑过几次啊,真是不发现问题感觉不到危机的存在,这也使我下定了决心,再也不能这样活,为了能多写几年程序,我要坚持煅炼了,每天晚上都去跑步,一个多星期过去了,感觉很明显,状态来了,所以呢,给忙碌的程序员们一个小忠告,注…

    2022年9月27日
  • 度量学习方法总结

    度量学习方法总结目录一.距离度量闵可夫斯基距离欧式距离(EuclideanDistance):标准化欧氏距离(StandardizedEuclideandistance)曼哈顿距离(ManhattanDistance)切比雪夫距离(Chebyshevdistance)马氏距离马氏距离代码示例:夹角余弦相关系数(Correlationcoefficient)…

    2022年6月18日
  • TCP、UDP绑定同一端口通信的解释

    TCP、UDP绑定同一端口通信的解释昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信。在印象当中我记得是可以的,今日google了相关资料,确定以及肯定的:TCP、UDP可以绑定同一端口来进行通信:       网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。       按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最…

    2022年6月13日
  • 无

    无

    2021年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号