本文实例讲述了Java适配器模式定义与用法。分享给大家供大家参考,具体如下:

将一个类的接口转换成客户想要的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
适配器一共包括3种角色
1、目标:目标是一个接口,该接口是客户想使用的接口
2、被适配者:被适配者是一个已存在的接口或抽象类,这个接口或抽象类需要适配
3、适配器:适配器是一个类,该类实现了目标接口并包含有被适配者的引用,即适配者的指着是对被适配者接口与目标进行适配
package org.zhy.adapter;
/**
* 目标
* @author zhengyi
*
*/
public interface ThreeElectricOutlet {
//用来刻画三相插座
public abstract void connectElectricCurrent();
}
package org.zhy.adapter;
/**
* 适配器
* @author zhengyi
*
*/
public class TreeElecricAdapter implements ThreeElectricOutlet {
TwoElectricOutlet outlet;
public TreeElecricAdapter(TwoElectricOutlet teo) {
this.outlet=teo;
}
@Override
public void connectElectricCurrent() {
outlet.connectElectricCurrent();
}
}
package org.zhy.adapter;
/**
* 被适配者
* @author zhengyi
*
*/
public interface TwoElectricOutlet {
//刻画两相插座
public abstract void connectElectricCurrent();
}
package org.zhy.adapter;
public class Appliction {
public static void main(String[] args) {
ThreeElectricOutlet outlet; //目标接口三相插座
Wash wash=new Wash();
outlet=wash;
System.out.println("使用三相插座接通电流");
outlet.connectElectricCurrent();
Tv tv=new Tv();
TreeElecricAdapter adapter=new TreeElecricAdapter(tv);
outlet= adapter;
System.out.println("使用三相插座接通电流");
outlet.connectElectricCurrent();
}
}
package org.zhy.adapter;
/**
* 洗衣机
* @author zhengyi
*
*/
public class Wash implements ThreeElectricOutlet {
private String name;
public Wash() {
name="洗衣机";
}
public Wash(String name){
this.name=name;
}
@Override
public void connectElectricCurrent() {
turnOn();
}
private void turnOn(){
System.out.println(name+"开始洗衣服");
}
}
package org.zhy.adapter;
/**
* 电视
* @author zhengyi
*
*/
public class Tv implements TwoElectricOutlet {
private String name;
public Tv() {
name="长江电视机";
}
public Tv(String s){
this.name=s;
}
@Override
public void connectElectricCurrent() {
turnOn();
}
private void turnOn(){
System.out.println(name+"开始播放节目");
}
}
适配器的适配程度
1、完全适配
如果目标接口中的方法数目与被适配者接口的方法数目相等那么适配器可将被适配者接口与目标接口进行完全适配
2、不完全适配
如果目标接口中的方法数目少于被适配者接口的方法数目那么适配器只能将被适配者接口与目标接口进行适配
3、剩余适配
如果目标接口中的方法数目大于被适配者接口的方法数目。那么适配器可将被适配者接口与目标接口进行完全适配,但必须将目标多余的方法给出用户允许默认实现
适配器模式的优点
1、目标和适配者是完全解耦的关系
2、适配器模式满足“开-闭原则”当添加一个实现Adaptee接口的新类时,不必修改Adaptee,而Adaptee就能对这个新类的实例进行适配
更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
# Java
# 适配器模式
# 详解Java适配器模式
# Java适配器模式应用之电源适配器功能详解
# Java设计模式之Adapter适配器模式
# 23种设计模式(5) java适配器模式
# Java经典设计模式之适配器模式原理与用法详解
# java设计模式之适配器模式(Adapter)
# Java Adapter 适配器模式(类适配器
# 对象适配器)优缺点对比
# 实例解析Java设计模式编程中的适配器模式使用
# 详解Java实践之适配器模式
# 是一个
# 将被
# 操作技巧
# 相关内容
# 抽象类
# 感兴趣
# 长江
# 数据结构
# 给大家
# 不完全
# 转换成
# 能对
# 所述
# 程序设计
# 洗衣服
# 不兼容
# 两相
# 实现了
# 讲述了
# 即适配者
相关文章:
建站上传速度慢?如何优化加速网站加载效率?
如何获取开源自助建站系统免费下载链接?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
如何快速上传建站程序避免常见错误?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
,南京靠谱的征婚网站?
如何打造高效商业网站?建站目的决定转化率
免费视频制作网站,更新又快又好的免费电影网站?
大同网页,大同瑞慈医院官网?
如何通过老薛主机一键快速建站?
如何选择高效可靠的多用户建站源码资源?
详解jQuery停止动画——stop()方法的使用
如何快速生成ASP一键建站模板并优化安全性?
定制建站方案优化指南:企业官网开发与建站费用解析
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何通过二级域名建站提升品牌影响力?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
Swift中swift中的switch 语句
高性价比服务器租赁——企业级配置与24小时运维服务
建站168自助建站系统:快速模板定制与SEO优化指南
打鱼网站制作软件,波克捕鱼官方号怎么注册?
开源网站制作软件,开源网站什么意思?
家具网站制作软件,家具厂怎么跑业务?
如何在企业微信快速生成手机电脑官网?
如何用花生壳三步快速搭建专属网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何通过wdcp面板快速创建网站?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
建站主机如何选?性能与价格怎样平衡?
C#怎么使用委托和事件 C# delegate与event编程方法
如何在万网自助建站平台快速创建网站?
如何选择CMS系统实现快速建站与SEO优化?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
太原网站制作公司有哪些,网约车营运证查询官网?
建站主机选虚拟主机还是云服务器更好?
建站之星2.7模板快速切换与批量管理功能操作指南
公司网站的制作公司,企业网站制作基本流程有哪些?
如何用好域名打造高点击率的自主建站?
C#如何使用XPathNavigator高效查询XML
如何通过NAT技术实现内网高效建站?
香港服务器如何优化才能显著提升网站加载速度?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Bpmn 2.0的XML文件怎么画流程图
如何在万网开始建站?分步指南解析
建站主机选购指南:核心配置优化与品牌推荐方案
微课制作网站有哪些,微课网怎么进?
建站之星安装后如何配置SEO及设计样式?
*请认真填写需求信息,我们会在24小时内与您取得联系。