适配器模式

适配器模式(别名:包装器)

 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

一 、 概述

适配器模式是将一个类的接口(被适配者)转换成客户希望的另外一个接口(目标)的成熟模式,该模式中涉及有目标、被适配者和适配器。适配器模式的关键是建立一个适配器,这个适配器实现了目标接口并包含有被适配者的引用

二、适配器模式的结构与使用 

模式的结构中包括三种角色:

目标( Target
被适配者( Adaptee
适配器( Adapter
适配器模式类图


1.目标(Target: ThreeElectricOutlet.java

public interface ThreeElectricOutlet{

    public abstractvoid connectElectricCurrent();

}

2.被适配者(Adaptee: TwoElectricOutlet.java

public interface TwoElectricOutlet{

    public abstractvoid connectElectricCurrent();

 }

3.适配器(AdapterTreeElectricAdapter.java

public class TreeElectricAdapter implements ThreeElectricOutlet{

  TwoElectricOutlet outlet;

  TreeElectricAdapter(TwoElectricOutlet outlet){

      this.outlet=outlet;

  }

  public void connectElectricCurrent(){

      outlet.connectElectricCurrent();

  }

}


4.应用 Application.java_1

 public class Application{

    public static void main(String args[]){

       ThreeElectricOutlet outlet;     

       Wash wash=new Wash();           

       outlet=wash;                     

       System.out.println("使用三相插座接通电流:");

       outlet.connectElectricCurrent();  

       TV tv=new TV();                   

       TreeElectricAdapter adapter=new TreeElectricAdapter(tv);

       outlet=adapter;                  

       System.out.println("使用三相插座接通电流:");

       outlet.connectElectricCurrent();  

    }

}

4.应用 Application.java_2

 class Wash implements ThreeElectricOutlet{

    String name;

    Wash(){

       name="黄河洗衣机";

    }

    Wash(String s){

       name=s;

    }

    public void connectElectricCurrent(){

       turnOn();

    }

    public void turnOn(){

       System.out.println(name+"开始洗衣物。");

    }

}

4.应用 Application.java_3

 class TV implements TwoElectricOutlet

    String name;

    TV(){

       name="长江电视机";

    }

    TV(String s){

       name=s;

    }

    public void connectElectricCurrent(){

       turnOn();

    }

    public void turnOn(){

       System.out.println(name+"开始播放节目。");

    }

}

三、适配器模式的优点 

目标( Target )和被适配者( Adaptee )是完全解耦的关系。
适配器模式满足 - 闭原则 。当添加一个实现 Adaptee 接口的新类时,不必修改 Adapter Adapter 就能对这个新类的实例进行适配。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值