首页 > 其他分享 >设计模式-适配器模式( Adapter Pattern)

设计模式-适配器模式( Adapter Pattern)

时间:2024-07-31 22:29:25浏览次数:15  
标签:Pattern 适配器 接口 模式 适配 设计模式 Adapter ###

设计模式-适配器模式( Adapter Pattern)

   概要

   记忆关键词:转换,兼容接口

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

   分析:在适配器模式中,Cilent调用Adapter以获得相应功能,Adapter扩展Adaptee以实现对应功能。

   适配器模式结构图如下:

    一、涉及相关的角色

    1. 目标(Target)接口-客户需求接口
当前系统业务所期待的接口,它可以是抽象类或接口。
### 2.  适配者(Adaptee)类-现有接口
它是被访问和适配的现存组件库中的组件接口。
### 1.3。 适配器(Adapter)类
它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。

## 2.优缺点分析

### 2.1 优点

- 可以让任何两个没有关联的类一起运行。
- 提高了类的复用,可以一致化多个不同接口。
- 将现有接口实现类隐藏,增加了类的透明度。
- 灵活性高,可自由适配。
-
### 2.2 缺点
- 过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。
因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。
- 某些适配工作可能非常困难,例如让房子飞起来。
当我们有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。

注意事项:适配器不是在详细设计时添加的,而是解决正在服役的项目的问题,即现有接口可能无法改变(去美国不可能把人家110V电压供给改成220V电压供给)。

标签:Pattern,适配器,接口,模式,适配,设计模式,Adapter,###
From: https://www.cnblogs.com/hld123/p/18335634

相关文章

  • 设计模式-外观模式(Facade)
    设计模式-外观模式(Facade)  概要   记忆关键词:对外统一接口  定义:为了是复杂的子系统更容易被使用,应当为子系统的众多接口提供一个简洁的高层接口。  分析:外观模式是一种结构型模式,它为子系统的众多接口提供了统一的高层接口,是子系统更容易使用。  外观模式结......
  • STL and Design Pattern
    DesignPatterns[TODO]0x01.依赖转置原则ref1例如人吃巧克力:publicinterfaceIChocolates{}publicclassOreoimplementsIChocolates{}publicclassDoveimplementsIChocolates{}publicinterfacePerson{voideat(IChocolateschocolates);}上面的例子......
  • Android开发 - (适配器)Adapter类中CursorAdapter实现类详细解析
    作用将Cursor对象中的数据与AdapterView组件(如ListView、GridView等)进行绑定。以下是CursorAdapter的主要作用:1.数据源绑定数据源连接:CursorAdapter通过Cursor对象作为数据源,实现了从数据库或其他数据源(如ContentResolver查询结果)中读取数据的功能。这使得开发者能够轻松地......
  • 设计模式 单例模式
    双重检查锁packagecom.fh.design_mode.singleton.double_check_lock;importlombok.SneakyThrows;importjava.util.concurrent.TimeUnit;/***双重检查锁*/publicclassSingletonTest{publicstaticvoidmain(String[]args){for(inti=1;i......
  • 设计模式 - 简单工厂模式(Simple Factory Pattern)
    设计模式-简单工厂模式(SimpleFactoryPattern)  概要  记忆关键字:工厂类创建对象  定义:通过工厂类创建对象,并且根据传入参数决定具体子类对象的做法,就是简单工厂模式  分析:如果一个类的实例需要在许多地方被创建和初始化,而初始化的代码也比较复杂。此时可以考虑......
  • Android开发 - (适配器)Adapter类中ArrayAdapter实现类详细解析
    作用将数组数据映射到UI组件(如ListView、Spinner等)上的角色。它是BaseAdapter的一个子类,专门用于处理简单的数据集合,如数组或列表。ArrayAdapter简化了数据到视图映射的过程,使得开发者能够以更少的代码实现数据的展示。它的主要作用为以下几点:数据绑定:它能够将一组数据......
  • Pattern的使用与Matcher正则表达式的使用。
    Pattern的使用在Java中,java.util.regex.Pattern类用于表示正则表达式的编译表示。正则表达式是一种强大的模式匹配工具,它可以用于搜索、替换和解析字符串。以下是一些常见的正则表达式匹配规则:普通字符:大多数字符都是普通字符,它们匹配自身。例如,正则表达式abc将匹配字符串......
  • 【设计模式】代理模式详解
    1.简介代理模式是常用的Java设计模式,该模式的特点是代理类与委托类共享相同的接口。代理类主要负责预处理消息、过滤消息、将消息转发给委托类,并在事后处理消息等。代理类与委托类之间通常存在关联关系,一个代理类对象与一个委托类对象关联。代理类对象本身不真正实现服务,而......
  • HV000030: No validator could be found for constraint ‘javax.validation.constrai
    原文链接:https://blog.csdn.net/miachen520/article/details/119817478错误原因:数字类型不能使用javax.validation.constraints.Pattern注解解决办法方法一:.将字段类型设置为String类型;方法二:使用其他验证注解验证,数字的有@Size,@Min,@Max,@Range现将@Valid常用注解介绍如下:Be......
  • 设计模式实战:日志系统的设计与实现
    问题描述设计一个日志系统,支持在应用程序中记录日志信息。系统需要确保日志记录器是唯一的实例,支持不同的日志记录方法(如文件、数据库),并且能够适配不同的日志格式(如JSON、XML)。设计分析单例模式单例模式确保一个类只有一个实例,并提供一个全局访问点。日志系统中的日志记......