博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
适配器模式--在NBA我需要翻译
阅读量:6500 次
发布时间:2019-06-24

本文共 1188 字,大约阅读时间需要 3 分钟。

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

  在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。
    适配器模式包括两种类型:类适配器模式和对象适配器模式。
    
何时使用适配器模式:
    在想使用一个已经存在的类,但如果他的接口,也就是他的方法和你的要求不相同时,就应该考虑用适配器模式。
    要在双方都不太容易修改的时候在使用适配器模式适配,而不是一有不同时就使用它

 

1 //这是客户所期待的接口。目标可以是具体或抽象的类,也可以是接口。2 public class Target {3     public void request(){4         System.out.println("普通请求");5     }6 }

 

适配器:

1 //Adapter(通过在内部包装一个Adaptee对象,把源接口转换成目标接口 2 public class Adapter extends Target{ 3  4     //建立一个私有的Adaptee对象 5     private Adaptee adaptee = new Adaptee(); 6      7     @Override 8     public void request() { 9         //这样就可以把表面上调用request()方法变成实际调用specificRequest()10         adaptee.specificRequest();11     }12 }

 

需要适配的类:

1 //需要适配的类2 public class Adaptee {3     public void specificRequest(){4         System.out.println("特殊请求!");5     }6 }

 

1 //客户端2 public class Client {3     public static void main(String[] args) {4         //对客户端来说,调用的就是Target的request()。但实际调用的是specificRequest()5         6         Target target = new Adapter();7         target.request();//特殊请求!8     }9 }

UML图:

  

 

转载于:https://www.cnblogs.com/lixianyuan-org/p/9516807.html

你可能感兴趣的文章
移动宽带套餐介绍_奋斗20载 整装再出发|千兆光纤入户“数字推手”烟台移动为生活“加速”...
查看>>
提取series中的数值_Python中None和numpy.nan的区别
查看>>
原理面试题_这12道高频原理面试题,你能答出几道?
查看>>
提交失败_金三提交又失败?小易给你支支招
查看>>
小米笔记本air无法充电_30W、45W、65W PD充电器对小米笔记本Air 13.3英寸0~100%充电测试...
查看>>
fidde调试手机_使用Fiddler抓包和调试移动web页面
查看>>
python 解析模块脚本_Python argparse模块应用实例解析
查看>>
大学生免费查题公众号_大学生免费查题公众号?搜题免费公众号?
查看>>
angular单选按钮_AngularJS单选按钮实例
查看>>
stm32实验报告心得体会_STM32实验报告
查看>>
单片机中XPL指令是什么_8051单片机的指令系统有什么特点
查看>>
datatable.load 是post请求吗_Python接口自动化之requests请求封装
查看>>
wdcp mysql版本_升级WDCP的PHP及MYSQL版本
查看>>
mac mysql打不开闪一下_mysql command line client打不开(闪一下消失)的解决办法
查看>>
mysql执行sql文件创建数据库_mysql执行sql文件创建数据库
查看>>
mysql横向合并两个表_mysql 查询两张表 横向合并实现类似full join
查看>>
jsp mysql登录注册视频_Jsp+servlet+Mysql实现注册登录
查看>>
hikariconfig mysql_HikariConfig配置解析
查看>>
mysql批量数据多次查询数据库_mysql数据库批量操作
查看>>
springboot mysql连接超时_SpringBoot连接数据库超时
查看>>