设计模式——适配器模式
来源:互联网 发布:crt软件使用 编辑:程序博客网 时间:2024/04/29 23:13
适配器模式就是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式分为两种,一种是类适配器模式,一种是对象适配器模式(也就是跟我们的组合模式配合使用)
适用性:
1.你想使用一个已经存在的类,而它的接口不符合你的需求。
2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
在我们的日常生活中所使用的充电器就是最好的适配器模式,我们的手机都是需要充电的,如果没有充电器的话,我们的手机是不可能自己会接收。
下面我们就以手机充电来
电源
public class PowerSupply { public void request(){ System.out.println("我是电源"); }}
接口
public interface Target { void handleRequest();}
充电器
public class Adapter extends PowerSupply implements Target { @Override public void handleRequest() { super.request(); }}
手机
public class Phone extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MainActivity mainActivity = new MainActivity(); Target target = new Adapter(); mainActivity.test(target); } public void test(Target t){ t.handleRequest(); }}
上面的适配器模式是一个类适配器模式,也就是说Adapter extends PowerSupply 因为继承只能单继承,导致不够灵活,所以我们还有另一种适配器可以跟我们的组合一起使用叫做对象适配器模式。
修改后的对象适配器模式为
public class ObjectAdapter implements Target { private PowerSupply powerSupply; public ObjectAdapter(PowerSupply powerSupply) { this.powerSupply = powerSupply; } @Override public void handleRequest() { powerSupply.request(); }}
手机里面的调用就有了稍微的改变
public class Phone extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MainActivity mainActivity = new MainActivity(); PowerSupply powerSupply = new PowerSupply(); Target target = new ObjectAdapter(powerSupply); mainActivity.test(target); } public void test(Target t){ t.handleRequest(); }}
适配器模式到这里就结束了,如有疑问欢迎留言。
1 0
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式——适配器
- 每日设计模式——适配器模式
- 浅谈设计模式——适配器模式
- 设计模式——适配器模式(Adapter)
- 设计模式—适配器模式—C++
- JAVA设计模式——适配器模式
- java设计模式——适配器模式
- 【大话设计模式】——适配器模式
- JAVA设计模式——适配器模式
- 设计模式——适配器模式
- 不用加减乘除的加法
- 【秘鲁收款】秘鲁最主流的支付Pago Efectivo
- Opencv 机器学习 快速入手小程序
- [学习方法】如何上好中学??中学生学习方法推介
- NodeJS、NPM安装配置步骤(windows版本) 以及环境变量
- 设计模式——适配器模式
- 神经网络
- 一步一步带你安装史上最难安装的 vim 插件 —— YouCompleteMe
- 添加dbt.h头文件,DEV_BROADCAST_DEVICEINTERFACE
- 栈和队列(一)
- nodejs npm常用命令
- spring boot 远程调试命令
- SAPsender ETL中间件工具
- 在ssm项目中,如何在工具类里配置dao层