适配器模式

设计模式

橙三吉。 提交于 2019-11-26 22:41:10
策略模式(Strategy Pattern) (1)适用场景 当解决问题的方法有多种方式,需要可替换时。 (2)核心 使用组合,封装成一个个算法,即是策略。 (3)类图 抽象工厂模式(Abstract Factory Pattern) (1)适用场景 产品有 不同的提供商 ,不同的提供商提供不同品牌和风味的产品; 同一提供商有 不同的流水线 ,不同的流水线生产不同的产品。 (2)核心 从创建开始就对产品进行了区分,生而不同。 (3)类图 适配器模式(Adapter Pattern) (1)适用场景 将外部服务融合进内部而外部接口与现有服务不兼容(表现在命名、返回值、入参等不同),需要进行适配才能使用时。 (2)核心 使用组合或者多继承,包装旧接口到包装类(或称为适配器)中。使用组合的称之为对象适配器,使用多继承的称之为类适配器。 (3)类图 参考(Reference) 图说设计模式 Head First 设计模式 来源: https://www.cnblogs.com/lshare/p/11334258.html

设计模式之GOF23适配器模式

大城市里の小女人 提交于 2019-11-26 19:11:26
结构型模式 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的 类结构,用来解决更大的问题 适配器模式adapter 实际生活中的例子:转换器 适配器的两种方式: 1,类适配器(继承) /**需要适配的对象 * @author 小帆敲代码 * */ public class Adaptee { public void request() { System.out.println("can do something"); } } /** *适配器(类适配器) * @author 小帆敲代码 * */ public class Adapter extends Adaptee implements Target { @Override public void handleReq() { super.request(); } } /** * 客户端 * @author 小帆敲代码 * */ public class Client { public void test(Target t) { t.handleReq(); } public static void main(String[] args) { Client c=new Client(); Target t=new Adapter(); c.test(t); } } public interface Target {

结构型设计模式——适配器模式(Go)

微笑、不失礼 提交于 2019-11-26 16:51:22
适配器模式:   适配器模式是用于当别人提供的对象或接口中的方法或者其它属性啥的和我们的重复了,或者看的不顺眼。名字太长了记不住,而将其包装到一个对象中,然后通过你感觉自己舒服的方式或者方法名字去间接的调用它。一个简单的例子就是三角插座,我没有三角口,用一个转接器呗。 对象适配器:   将那个你看的不顺眼的对象的引用存在你的包装类对象内 package mainimport "fmt"type Target interface { request()}type Adaptee struct {}func(it *Adaptee)specificrequeset(){ fmt.Println("asdf")}type Adapter struct { adaptee *Adaptee}func(it *Adapter)setAdaptee(adaptee *Adaptee){ it.adaptee = adaptee}func(it *Adapter)request(){ it.adaptee.specificrequeset()}func main(){ target := new(Adapter) adaptee := new(Adaptee) target.setAdaptee(adaptee) target.request()} 类适配器: 通过同时继承这两个类

适配器模式(Adapter)

守給你的承諾、 提交于 2019-11-26 16:39:06
前言:适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。 概念:适配器模式的种类:1.类适配器(通过继承来实现适配器功能)、2.对象适配器(通过组合来实现适配器功能)、3.接口适配器(通过抽象类来实现适配)。 一:类适配器 :通过继承来实现适配器功能 生活场景:美国的插头是三角,中国的插头是两角,如 果让二角变三角 或者三角变两角呢?数据转换线就是适配器 代码实现: AmericaPower.java(美国插头接口),APower.java(实现类),ChinaPower.java(中国插头接口),CPower.java(中国插头实现类) public interface AmericaPower { public void threeStep(); } public class APower implements AmericaPower { @Override public void threeStep() { System.out.println("我是三角的电源"); } } public interface ChinaPower { public void twoStep(); } public class CPower extends APower implements

设计模式之适配器模式

人走茶凉 提交于 2019-11-26 16:38:43
在使用适配器模式之前,需要先认识一下以下__dict__内置函数 __dict__是什么有什么作用 __dict__ 属性用于查看对象内部存储的所有属性名和属性值组成的字典 __dict__如何使用 使用 __dict__ 属性既可查看对象的所有内部状态,也可通过字典语法来访问或修改指定属性的值,通常程序直接使用该属性即可 __dict__使用场景 class Item: def __init__ (self, name, price): self.name = name self.price = price im = Item('鼠标', 28.9) print(im.__dict__) # ① # 通过__dict__访问name属性 print(im.__dict__['name']) # 通过__dict__访问price属性 print(im.__dict__['price']) im.__dict__['name'] = '键盘' im.__dict__['price'] = 32.8 print(im.name) # 键盘 print(im.price) # 32.8# output  {'name': '鼠标', 'price': 28.9}  鼠标 28.9 键盘 32.8          适配器模式:        上面有三个类, 分别是教师,程序员,飞行员

适配器模式

喜欢而已 提交于 2019-11-26 12:48:16
适配器模式 主要解决: 主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。 应用实例: 1、美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。 2、JAVA JDK 1.1 提供了 Enumeration 接口,而在 1.2 中提供了 Iterator 接口,想要使用 1.2 的 JDK,则要将以前系统的 Enumeration 接口转化为 Iterator 接口,这时就需要适配器模式。 3、在 LINUX 上运行 WINDOWS 程序。 4、JAVA 中的 jdbc。 下面以电脑读取SD卡为例 创建SD卡接口 package com.design.demo.adapter; /** * @author: GuanBin * @date: Created in 下午4:43 2019/8/7 */ public interface SDCard { /** * 读取SD卡方法 * * @return */ String readSD(); /** * 写入SD卡功能 * @param msg * @return */ int writeSD(String msg); } 创建SD卡实现类 package com.design.demo.adapter; /** * @author: GuanBin

适配器模式

浪子不回头ぞ 提交于 2019-11-26 00:45:37
适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。将一个类的接口转换成客户希望的另外一个接口。 1、创建媒体播放器和高级媒体播放器接口 1 public interface MediaPlayer { 2 void play(String audioType,String fileName); 3 } MediaPlayer 1 public interface AdvanceMediaplayer { 2 void playVLC(String fileName); 3 void playMP4(String fileName); 4 } AdvanceMediaplayer 2、高级播放器的2个实现类 1 public class MP4Player implements AdvanceMediaplayer { 2 @Override 3 public void playVLC(String fileName) { 4 5 } 6 7 @Override 8 public void playMP4(String fileName) { 9 System.out.println("Playing mp4 file. Name:"+fileName); 10 } 11 } MP4Player 1 public class VLCPlayer

HeadFirst设计模式<2>

只愿长相守 提交于 2019-11-26 00:25:33
HeadFirst设计模式<2> 1 装饰者模式 星巴克咖啡 饮料 总结 如果说策略模式是通过组合实现弹性,那么装饰者模式就是通过继承来实现,在实现的同时,客户基本感觉不到使用了装饰者模式 2 适配器模式 对象适配器 类适配器 火鸡 总结 适配器模式和装饰者模式非常像,适配器模式是适配对象接口,而装饰者模式不改变对象接口的情况下给对象新的职责。 来源: https://www.cnblogs.com/lovexinyi/p/11932161.html

设计模式:与SpringMVC底层息息相关的适配器模式

南楼画角 提交于 2019-11-25 18:56:55
目录 前言 适配器模式 1、定义 2、UML类图 3、实战例子 4、总结 SpringMVC底层的适配器模式 参考 前言 适配器模式是最为普遍的设计模式之一,它不仅广泛应用于代码开发,在日常生活里也很常见。比如笔记本上的电源适配器,可以使用在110~ 220V之间变化的电源,而笔记本还能正常工作,这就是适配器模式最直接的例子,同时也是其思想的体现,简单的说,适配器模式就是把一个类(接口)转换成其他的类(接口)。 适配器模式 1、定义 适配器模式,也叫包装模式,指的是 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 我们可以通过增加一个适配器类来解决接口不兼容的问题,而这个适配器类就相当于笔记本的适配器。 根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是 关联 关系;在类适配器模式中,适配器与适配者之间是 继承 (或实现)关系。 2、UML类图 适配器模式包含了几个角色,它们是: Target(目标角色) :该角色定义其他类转化成何种接口,可以是一个抽象类或接口,也可以是具体类。 Adaptee(源角色) :你想把谁转换成目标角色,这个“谁”就是源角色,它是已经存在的、运行良好的类或对象。 Adapter(适配器角色) :适配器模式的核心角色