设计模式学习(五) 适配器模式
结构型模式:
--- 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题
--- 分类:
适配器模式,代理模式,桥接模式,装饰模式,组合模式,外观模式,享元模式
适配器模式:
原理:
-- 将一个类接口转换成客户希望的另外一个接口。
优点:
Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以在一起工作
模式中的角色:
- 目标接口(Target): 客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口
- 需要适配的类(Adaptee):需要适配的类或者适配者类
- 适配器(Adapter):通过包装一个需要适配的对象。把原接口转换成目标接口
实现方式:
1:类适配器:
package com.lp.adpater;public class Adapter extends Adaptee implements Target {@Overridepublic void handleReq() {super.request();}}
类适配器
2:对象适配器:
package com.lp.adpater;public class Adaptee {public void request(){System.out.println("可以完成客户需要的功能");} }
需要适配的类
package com.lp.adpater;public interface Target {void handleReq(); }
目标接口
package com.lp.adpater;public class Adapter implements Target {private Adaptee adaptee;@Overridepublic void handleReq() {adaptee.request();}public Adapter(Adaptee adaptee) {super();this.adaptee = adaptee;}}
适配器
package com.lp.adpater;//客户端类 //相当于一个笔记本电脑,只有usb接口 public class Client {public void test1(Target t){t.handleReq();}public static void main(String[] arg){Client c = new Client();Adaptee a = new Adaptee();Target t = new Adapter(a);c.test1(t);}}
客户端
工作中的场景:
-- 经常用来做旧系统改造和升级
-- 如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系统的数倍
学习中的场景用到适配器模式的:
-- java.io.InputStremReader(InputStream)
-- java.io.OutputStremReader(OutputStream)
转载于:https://www.cnblogs.com/lipeng0824/p/4423644.html
设计模式学习(五) 适配器模式相关推荐
- 设计模式 - 学习笔记 - 适配器模式AdapterPattern
设计模式 - 学习笔记 - 适配器模式AdapterPattern 学习总结 UML 代码演示 电源插座 ElectricalSocket 两口插头 Plug USB公口 手机充电器(适配器) Cha ...
- 设计模式学习五、代理模式
一.什么是代理模式? 为另一个对象提供一个替身或一个占位符以控制对这个对象的访问. 二. 代理模式各种变体. 远程代理:使得客户端可以访问在远程主机的角色(两个程序不在同一个jvm虚拟机). 虚拟代理 ...
- 设计模式学习5——适配器模式
概述 记录了适配器模式的概念以及代码实现 定义 简单来说,适配器模式就是要将一个接口转换成另一个接口,大多数情况都是功能扩展之后用了新的接口,但是底层还是用的过去的接口,需要将新的接口转换成旧的才能使 ...
- 设计模式学习(五)————装饰模式
装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活 比如要出门,给自己穿上各种衣服,就可以使用一个服装类: #ifndef PERSON #define PERS ...
- 设计模式学习(三):Adapter适配器模式
一.什么是Adapter模式 我们先举个例子:如果想让额定工作电压是直流12V的笔记本电脑在交流220V的电源下工作,应该怎么做呢?通常,我们会使用适配器,将家庭用的交流220V电压转换成我们所需要的 ...
- 小菜学习设计模式(五)—控制反转(Ioc)
写在前面 设计模式目录: 小菜学习设计模式(一)-模板方法(Template)模式 小菜学习设计模式(二)-单例(Singleton)模式 小菜学习设计模式(三)-工厂方法(Factory Metho ...
- 设计模式学习笔记(C++实现)(七)--适配器模式
1.适配器模式简介 英文名称 Adapter 主要目的 该模式可以将一个类的的接口,转换成客户想要的另一个接口. 使用场景 1.当要使用的两个类功能相同或者相似,但仅仅是接口不同时. 2.适配器模式代 ...
- java/android 设计模式学习笔记(6)---适配器模式
这篇来介绍一下适配器模式(Adapter Pattern),适配器模式在开发中使用的频率也是很高的,像 ListView 和 RecyclerView 的 Adapter 等都是使用的适配器模式.在我 ...
- 设计模式(五)适配器模式Adapter(结构型)
设计模式(五)适配器模式Adapter(结构型) 1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题.程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库 ...
- 步步为营 .NET 设计模式学习笔记系列总结
设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意 ...
最新文章
- mybatis 操作动态表+动态字段+存储过程
- 设置sql*plus的sqlprompt
- 基于django的视频点播网站开发-step2-搭建环境
- ALV DataChange EVENT
- ASP.NET 多环境下配置文件web.config的灵活配置---转
- Java 基础——构造器和方法的区别
- SQLCE 3.5 部署打包
- 目标检测——YOLOV3的学习笔记
- 互联网下一个热点:服务业电子商务
- jbpm hibernate.cfg.xml 连接mysql配置_hibernate.cfg.xml文件连接mySql、Oracle、SqlServer配置...
- 翻译: 3.7. Softmax 回归的简明实现 pytorch
- python爬虫做灰产_python爬虫
- 草稿草稿草稿22.10.9 “yuyu“ IO进程线程
- android配置参数详解,安卓手机CPU与GPU等配置参数含义详解【详细介绍】
- 中华瑰宝之山西人的面食
- pwlink用作USB转TTL,进入HC-05的AT模式
- 转 信号量与PV操作
- 读《从一到无穷大》之后感
- C语言数组制作拼图游戏,C语言自制拼图游戏.doc
- 幼儿-综合素质【7】
热门文章
- 2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
- How to Make a Computer Operating System
- LTE-V2X车联网无线通信技术发展
- 关于 客户端发现响应内容类型为“text/html; charset=utf-8”,但应为“text/xml”的解决方法...
- [Android] ubuntu 下不识别 Android 设备
- 把二元查找树转变成排序的双向链表
- SharePoint 2013的100个新功能之网站管理(二)
- Linux 监视磁盘空间和使用情况
- asp.net2.0学习历程 菜鸟到中级程序员的飞跃
- c#_限制TextBox输入类型仅可为“-” “.” 数字