网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > Java精品代码 > 正文

JAVA适配器模式示例

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
将一个类的接口转换成客户想要的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作

适配器一共包括3种角色
1、目标:目标是一个接口,该接口是客户想使用的接口
2、被适配者:被适配者是一个已存在的接口或抽象类,这个接口或抽象类需要适配
3、适配器:适配器是一个类,该类实现了目标接口并包含有被适配者的引用,即适配者的指着是对被适配者接口与目标进行适配
  1. package org.zhy.adapter;  
  2.   
  3. /** 
  4.  * 目标 
  5.  * @author zhengyi 
  6.  * 
  7.  */  
  8. public interface ThreeElectricOutlet {  
  9.     //用来刻画三相插座   
  10.     public abstract void connectElectricCurrent();  
  11. }  
  1. package org.zhy.adapter;  
  2. /** 
  3.  * 适配器 
  4.  * @author zhengyi 
  5.  * 
  6.  */  
  7. public class TreeElecricAdapter implements ThreeElectricOutlet {  
  8.   
  9.     TwoElectricOutlet outlet;  
  10.     public TreeElecricAdapter(TwoElectricOutlet teo) {  
  11.         this.outlet=teo;  
  12.     }  
  13.       
  14.     @Override  
  15.     public void connectElectricCurrent() {  
  16.         outlet.connectElectricCurrent();  
  17.     }  
  18.       
  19. }  
  1. package org.zhy.adapter;  
  2.   
  3. /** 
  4.  * 被适配者 
  5.  * @author zhengyi 
  6.  * 
  7.  */  
  8. public interface TwoElectricOutlet {  
  9.   
  10.     //刻画两相插座   
  11.     public abstract void connectElectricCurrent();  
  12. }  
  1. package org.zhy.adapter;  
  2.   
  3. public class Appliction {  
  4.   
  5.     public static void main(String args) {  
  6.         ThreeElectricOutlet outlet;  //目标接口三相插座   
  7.         Wash wash=new Wash();  
  8.         outlet=wash;  
  9.         System.out.println("使用三相插座接通电流");  
  10.         outlet.connectElectricCurrent();  
  11.           
  12.         Tv tv=new Tv();  
  13.         TreeElecricAdapter adapter=new TreeElecricAdapter(tv);  
  14.         outlet= adapter;  
  15.         System.out.println("使用三相插座接通电流");  
  16.         outlet.connectElectricCurrent();  
  17.     }  
  18. }  
  1. package org.zhy.adapter;  
  2. /** 
  3.  * 洗衣机 
  4.  * @author zhengyi 
  5.  * 
  6.  */  
  7. public class Wash implements ThreeElectricOutlet {  
  8.   
  9.     private String name;  
  10.     public Wash() {  
  11.         name="洗衣机";  
  12.     }  
  13.     public Wash(String name){  
  14.         this.name=name;  
  15.     }  
  16.     @Override  
  17.     public void connectElectricCurrent() {  
  18.         turnOn();  
  19.     }  
  20.     private void turnOn(){  
  21.         System.out.println(name+"开始洗衣服");  
  22.     }  
  23. }  
  1. package org.zhy.adapter;  
  2. /** 
  3.  * 电视 
  4.  * @author zhengyi 
  5.  * 
  6.  */  
  7. public class Tv implements TwoElectricOutlet {  
  8.   
  9.     private String name;  
  10.     public Tv() {  
  11.         name="长江电视机";  
  12.     }  
  13.     public Tv(String s){  
  14.         this.name=s;  
  15.     }  
  16.       
  17.     @Override  
  18.     public void connectElectricCurrent() {  
  19.         turnOn();  
  20.     }  
  21.     private void turnOn(){  
  22.         System.out.println(name+"开始播放节目");  
  23.     }  
  24. }  

适配器的适配程度
1、完全适配
如果目标接口中的方法数目与被适配者接口的方法数目相等那么适配器可将被适配者接口与目标接口进行完全适配
2、不完全适配
如果目标接口中的方法数目少于被适配者接口的方法数目那么适配器只能将被适配者接口与目标接口进行适配
3、剩余适配
如果目标接口中的方法数目大于被适配者接口的方法数目。那么适配器可将被适配者接口与目标接口进行完全适配,但必须将目标多余的方法给出用户允许默认实现

TAG: JavaJAVAjava




点击下载系统:http://www.myeducs.cn/chaxun/index.html?go=JAVA适配器模式示例&aa=%CB%D1%CB%F7%C2%DB%CE%C4
  • 上一篇资讯: JavaBean的技术基础
  • 下一篇资讯: JAVA中责任链模式
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师