锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

设计模式——结构型模式之代理模式和适配器模式(类比+图解,从无到有,一文看懂几种模式的区别)

时间:2022-12-02 04:30:00 角度传感器适配器的防脱出结构

设计模式

系列文章:

一、创建模式-工厂模式
二、创建模式-单例模式
三、创建模式-建造者模式
四、结构模式-装饰模式
五、结构模式-代理模式,适配器模式


文章目录

  • 设计模式
    • 前言
      • 一、 代理模式的定义
      • 二、代理模式类图和设计实例
      • 三、定义适配器模式
      • 四、装饰、代理、适配器的区别


前言

  • 代理模式是结构模式中最简单的模式之一,易于理解,用途广泛,可应用于远程代理、安全保护、智能处理等方面。
  • 适配器模式比较复杂,和以前的装修师差不多。Java它们都在输入输出流库中。

一、 定义代理模式

顾名思义,代理模式是为另一个对象提供代理,其他访问需要通过代理来判断or预处理后,再由代理对被代理对象进行控制。具体可以按照以下的图来理解:
在这里插入图片描述

浏览器向服务器发起的请求由服务器程序代理转发到真正的服务。作为中间人,代理可以执行判断请求,选择执行代理相关操作的功能,并实现安全保护等先进功能。
(Servlet、关于Servlet概念及相关Java Web这篇文章可以获得
基本知识——Java Web 基础之Servlet概念详解(Servlet是什么?主要功能?重点使用基础?

二、代理模式类图和设计实例

首先,代理代理和被代理对象属于同一类下的继承——方便代理能够无缝连接被代理对象的功能。具体类图如下:

以下是一个例子:贴心电话小助手设计
出于某种需要,狂徒-张三他需要一个亲密的小助理来帮助他处理电话请求,要求判断接听欧洲尼古拉斯协会的电话,其他电话都不接,礼貌地回复。
具体设计如下,所有电话请求均由小助理处理,不能直接连接到张三(代理对象)。

三、定义适配器模式

想必大家都用过手机数据线转接头,这其实是一种适配器,设计模式中的概念也是如此——
将一个类的接口转换为客户想要的另一个接口,实现类/对象的组合(数据线与充电口紧密结合)

结合类图分析适配器的具体操作方法:

首先,我们设计了它Adaptee,本来这个类用的很好,现在需要转换成另一个接口,在不完全放弃的情况下要求这个/对象安装适配器。

所以在使用特殊接口时,使用Adapter包装-看起来像装饰模式,因为两者都是包装模式之一;有点像接口代理(三者的区别)

四、装饰、代理、适配器的区别

先来看看三者的类图

(适配器模式和代理模式)

首先 :代理模式实现一对一代理,代理负责代理对象的处理;装饰和适配器可以层层嵌套,形成包装链。

然后 是装饰者的实现功能的灵活扩展或者动态添加属性适配器设计是为了满足连接类和类的不同接口,实现需要重用功能;设计目的不同,装饰设计模式多用于设计之初,适配器用于后期补偿。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章