java的适配器的情形_java适配器模式

定义:将一个类的接口转换成用户期望的另一个接口

使原本接口不兼容的类可以一起工作

结构型

应用场景:

已经存在的类,他的方法和需求不匹配时(方法结果相同或相似)

功能类似而接口不相同的情况下的解决方案

优点:

能提高类的透明性和复用,现有的类复用但不需要改变

目标类和适配器 类解耦,提高程序扩展性

符合开闭原则

类:

public class Adapteee {

public void adapteeRequest(){

System.out.println("被适配着的方法");

}

}

public interface Target {

void request();

}

public class ConcreteTarget implements Target {

public void request() {

System.out.println("目标方法");

}

}

public class Adapter extends Adapteee implements Target{

public void request() {

super.adapteeRequest();

}

}

public class Test {

public static void main(String[] args) {

Target target=new ConcreteTarget();

target.request();

Target adapterTarget=new Adapter();

adapterTarget.request();

}

}

对象:

public class Adapteee {

public void adapteeRequest(){

System.out.println("被适配着的方法");

}

}

public class ConcreteTarget implements Target {

public void request() {

System.out.println("目标方法");

}

}

public class Adapter implements Target{

private Adapteee adapteee=new Adapteee();

public void request() {

adapteee.adapteeRequest();

}

}

public class Test {

public static void main(String[] args) {

Target target=new ConcreteTarget();

target.request();

Target adapterTarget=new Adapter();

adapterTarget.request();

}

}

实际应用:

public class AC220 {

public int outputAC220v(){

int output=220;

System.out.println("输出交流电"+output+"V");

return output;

}

}

public interface DC5 {

int outputDC5V();

}

public class PowerAdapter implements DC5{

private AC220 ac220=new AC220();

public int outputDC5V() {

int adapterInput=ac220.outputAC220v();

int adapterOutput=adapterInput/44;

System.out.println("使用PowerAdapter输入AC:"+adapterInput+"V"+"输出DC:"+adapterOutput+"V");

return adapterOutput;

}

}

public class Test {

public static void main(String[] args) {

DC5 dc5=new PowerAdapter();

dc5.outputDC5V();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值