深入浅出设计模式之适配器模式
来源:互联网 发布:linux nginx php7配置 编辑:程序博客网 时间:2024/06/05 11:04
引子
适配器模式,故名思义,就是就是通过适配器类,把两个不符合幸好的类或者借口可以进行组合在一起。举个例子:假如我们以有一个系统,我们希望它能和一个新的厂商类搭配使用,但是新厂商设计出来的借口,不同于旧的厂商的借口:
所以我们可以加入一个适配器:
这样我们不需要改变原来的代码,只要新增适配器的代码,即可。
例子
//自行车接口,只会走的自行车public interface Bycle { void walk();}//汽车接口,会跑public interface Car { void run();}//买的起自行车public class MyBycle implements Bycle{ public void walk(){ System.out.println("mybylce walk"); }}public class Test { public static void main(String[] args) { //我们有一辆自行车 MyBycle bycle=new MyBycle(); //但是,我需要一辆汽车 Car car=null; dirver(car); } private static void dirver(Car car) { car.run(); }}
加入适配器:
//集成要实现的类的接口public class MyBycle2Car implements Car{ //首先我们要把自行车导入进来 Bycle bycle; public MyBycle2Car(Bycle bycle){ this.bycle=bycle; } //要实现汽车的跑 @Override public void run() { //汽车走5次就和汽车一样了 for(int i=0;i<5;i++){ bycle.walk(); } }}//这时候我们可以用我们的是适配器类把我们的自行车装饰成汽车public class Test { public static void main(String[] args) { //我们有一辆自行车 MyBycle bycle=new MyBycle(); //但是,我需要一辆汽车 Car car=new MyBycle2Car(bycle); dirver(car); } private static void dirver(Car car) { car.run(); }}
客户使用适配器的过程如下:
1.客户通过目标接口使用适配器的方法对适配器发出请求
2.时平日期的使用被适配器的借口把请求转换成被适配者的一个或者多个借口调用
3.客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。
定义
将一个类的借口,转换成客户期望的另一个借口。适配器让原本接口不兼容的类可以合作无间。
注意
适配器有两种:类适配器和对象适配器。我们上述讲述的就是对象适配器,使用组合的方式实现。还有一种类适配器,需要进行多继承,要同时继承被适配器类和对象类,这在java里使无法实现的,但在可以多继承的语言里可以实现。
0 0
- 深入浅出Java设计模式之适配器模式
- 深入浅出Java设计模式之适配器模式
- 深入浅出Java设计模式之适配器模式
- 深入浅出Java设计模式之适配器模式
- 深入浅出设计模式之适配器模式
- 深入浅出设计模式之适配器模式
- 深入浅出设计模式之命令模式、适配器模式、外观模式
- 深入浅出设计模式笔记之五:适配器模式
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式 之 适配器
- 设计模式 之 适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 设计模式之适配器
- 二维数组,split应用
- Charles4.0最新版破解(更新至4.0.1)
- Oracle数据库语句大全
- 【51Nod】1007 - 正整数分组(01背包)
- 1908: 小火山的围棋梦想
- 深入浅出设计模式之适配器模式
- [noip2015] 信息传递
- Java算法——求100—999之间的所有水仙花数,并统计一共有几个
- AndroidVerifyBoot
- PHP Class各种方法和类的使用
- 如何在caffe中添加新的Layer
- 组合游戏(Nim 、反Nim)
- rt-thread的小内存管理算法分析
- C++用户自定义转换(User-Defined Conversion)