设计模式 第六章 适配器模式

本文详细介绍了适配器模式的三种形式:类适配器、对象适配器和接口适配器。类适配器通过继承源类并实现目标接口来实现适配;对象适配器则通过持有源类对象并实现目标接口;接口适配器提供默认实现,子类可选择覆盖部分方法。适配器模式主要用于解决不同接口间的兼容性问题,使得不兼容的类能够协同工作。
摘要由CSDN通过智能技术生成

# 设计模式 第六章 适配器模式

前言

	适配器模式,结构型模式,将某个类的接口转换成另一个接口
	表示,主要目的是兼容性,让原本因接口不匹配不能一起工作
	的二个类可以协同工作,别名包装器。
	适配器模式三种方法:
	 1. 类适配器
	 2. 对象适配器
	 3. 接口适配器 

一、类适配器

1.介绍

适配器类通过继承src类,实现dst类的接口,
完成src->dst的适配。

2.代码示例

//src类
public class Animal{
    void eat();
}
//适配器接口
public interface Voltage{
    void eatAll();
}
//适配器接口的实现
public class VoltageAdapter extends Animal implements Voltage{
 	@Override
   public void eatAll() {
   	  eat();
      System.out.println("适配器吃");
   }
}
//dst类
public class Dog{
   public void eat(Voltage voltage) {
		voltage.eatAll();
   }
}


二、对象适配器

1.介绍

同类适配器,将Adapter类不在继承src类,而是特有src类的
实例,以解决兼容性的问题。持有src类实现dst类的接口,
完成src->dst。常用的一种。

2.代码示例

//src类
public class Animal{
    void eat(){
    	System.out.println("动物吃");
    }
}
//适配器接口
public interface Voltage{
    void eatAll();
}
//适配器接口的实现
public class VoltageAdapter implements Voltage{
	private Animal animal;
	public VoltageAdapter(Animal animal){
	this.animal = animal;
	}
 	@Override
   public void eatAll() {
   	  animal.eat();
      System.out.println("适配器吃");
   }
}
//dst类
public class Dog{
   public void eat(Voltage voltage) {
		voltage.eatAll();
   }
}

三、接口适配器模式

1.介绍

又称缺省适配器模式,当不需要全部实现接口的方法时,
设计一个抽象类实现接口,并为该接口中每个方法提供一个
默认实现,那么该抽象的子类可有选择的覆盖父类的某些方法。

2.代码示例

//src类
public class Animal{
    void eat(){
    	System.out.println("动物吃");
    }
}
//适配器接口
public interface InterfaceM{
    void m1();
    void m2();
    void m3();
    void 4();
}
//适配器接口的实现
public abstract class VoltageAdapter implements InterfaceM{
	void m1(){
	}
    void m2(){
    }
    void m3(){
    }
    void 4(){
    }
}
//dst类
public class Dog{
   public static void main(String[] args) {
VoltageAdapter voltageAdapter = new VoltageAdapter(){
@Override
void m1(){
	  System.out.println("m1方法");

}

}

  }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值