adapter 适配器
2011-10-10 18:49
106 查看
定义:
适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
示例:
比如,水货的手机充电器插头是欧美标准(大头插座),中国的插座是小的,如果要是充电器工作,必须有个转换插头(小插座不具备给大插头充电的功能),其功能和adapater相同。
其中,大充电器是目标类,小插座是被适配的对象,转换插头是适配器。
使用场合:
当需要已知类A和类B的功能,且类A和类B功能不完全满足要求,需要修改,但又不能修改A,B源码时,可将A,B类以继承和组合的方式引入适配器类中,然后直接使用适配器类来完成想要的功能。
适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
示例:
比如,水货的手机充电器插头是欧美标准(大头插座),中国的插座是小的,如果要是充电器工作,必须有个转换插头(小插座不具备给大插头充电的功能),其功能和adapater相同。
其中,大充电器是目标类,小插座是被适配的对象,转换插头是适配器。
使用场合:
当需要已知类A和类B的功能,且类A和类B功能不完全满足要求,需要修改,但又不能修改A,B源码时,可将A,B类以继承和组合的方式引入适配器类中,然后直接使用适配器类来完成想要的功能。
public class test7 { public static void main(String[] args) { //client 客户端 //使用适配器类给大插头充电 BigPlug bp=new SmallSocketAdapter(); bp.getElec(); } } //target //目标类,大插头需要充电 class BigPlug{ void getElec(){ System.out.println("我在大插座上充电"); } } //adaptee 被适配的对象 //想要使用小插座这个类的充电的方法,但此方法的参数不符合要求,因此需要适配 class SmallSocket{ void supplyElecToSmallPlug(SmallPlug smallPlug){ System.out.println("我是小插座,小插头可以插上,充电中。。。"); } } class BigSocket{} class SmallPlug{} //adapter 适配器 //通过它将大插头转换成小插头,以在小插座上充电 class SmallSocketAdapter extends BigPlug{ SmallSocket ss=new SmallSocket(); void getElec(){ SmallPlug sp=BigPlugToSmallPlug(this); ss.supplyElecToSmallPlug(sp); } private SmallPlug BigPlugToSmallPlug(BigPlug bigPlug) { //TODO 将转换为小插头 return null; } }
相关文章推荐
- Android万能适配器Adapter
- CommonAdapter-万能的ListView.GridView的适配器
- ASP.NET的适配器设计模式(Adapter)应用详解
- 适配器模式(Adapter):类适配器、对象适配器
- java演示适配器(adapter)模式
- 一个继承BaseAdapter的适配器的例子
- 三大适配器ArrayAdapter,SimpleAdapter,MyAdapter
- 适配器(Adapter)模式
- (转)Android开发之ListView 适配器(Adapter)优化
- Linux控制器(Controller)与适配器(Adapter)
- 【Java 设计模式】接口型模式--Adapter(适配器)模式
- Java设计模式透析之 —— 适配器(Adapter)
- 利用IP_ADAPTER_INFO结构获取网络适配器信息
- 网络请求的图片,在Adapter(适配器)中异步的处理
- 用SimpleAdapter做的listview适配器
- viewpager适配器pageradapter调用notifyDataSetChanged()数据没更新
- Android中GridView的使用——使用自带的SimpleAdapter(简单适配器)
- Android数据适配器BaseAdapter
- Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法与有用代码片段
- BaseAdapter使用——自定义适配器