欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java适配器模式定义与用法示例

时间:2021-02-12 08:52:11|栏目:JAVA代码|点击:

本文实例讲述了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基本类型包装类概述与Integer类、Character类用法分析

栏    目:JAVA代码

下一篇:Java实现Json字符串与Object对象相互转换的方式总结

本文标题:Java适配器模式定义与用法示例

本文地址:http://www.codeinn.net/misctech/61870.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有