适配器模式

文章目录

  • 适配器模式✅
  • 一、实验要求
  • 二、代码✅
  • 三、类图
  • 代码结果
  • 总结

适配器模式✅

在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

一、实验要求

使用适配器模式实现家电通用案例。电视机使用两相插头,洗衣机使用三相插头。现用新的三孔插座来使用电视机和洗衣机

二、代码✅

TwoElectricOutlet.java
public interface TwoElectricOutlet{
    public abstract void connectElectricCurrent(); 
} 

ThreeElectricOutlet.java
public interface ThreeElectricOutlet{
    public abstract void connectElectricCurrent(); 
}

TreeElectricAdapter.java
public class TreeElectricAdapter implements ThreeElectricOutlet{
   TwoElectricOutlet outlet;
   public TreeElectricAdapter(TwoElectricOutlet outlet){
        this.outlet=outlet;
   }
   @Override
   public void connectElectricCurrent(){
     outlet.connectElectricCurrent();
   }
}

Application.java
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();   //接通电流,开始播放电视节目
    }
}


class Wash implements ThreeElectricOutlet{ //洗衣机使用三相插座
    String name;
    Wash(){
       name="黄河洗衣机";
    }
    Wash(String s){
       name=s;
    }
    public void connectElectricCurrent(){
       turnOn();
    }
    public void turnOn(){
       System.out.println(name+"开始洗衣物。");
    }
}

class TV implements TwoElectricOutlet{    //电视机使用两相插座
    String name;
    TV(){
       name="长江电视机";
    }
    TV(String s){
       name=s;
    }
    public void connectElectricCurrent(){
       turnOn();
    }
    public void turnOn(){
       System.out.println(name+"开始播放节目。");
    }
}

三、类图

适配器模式_第1张图片

代码结果

适配器模式_第2张图片

总结

这些都是基础的,不会的多多看前面文章.

你可能感兴趣的:(适配器模式,java,开发语言)