📄 adapter1.java
字号:
//如果将B接到A上用,这叫作单向适配器模式,A主动,B被动
//单向适配器模式要点:继承方法
//考虑被动方以后可能被切换,为了方便,最好面向接口编程
class A{
public void funA(){
System.out.println("图像清晰化");
}
}
interface IEM{//定义一个接口,管理所有的扩展模块(被动方模块)
public abstract void extendFun();
}
class B implements IEM{
public void extendFun(){
System.out.println("图像去噪声老算法");
}
}
class C implements IEM{
public void extendFun(){
System.out.println("图像去噪声新算法");
}
}
class SubA extends A{//将A进行扩展,以后将SubA当成A来用
private IEM iem; //完全面向接口编程,可以将IEM的任何实现类对象接入(可以用Spring管理)
public SubA(IEM iem){
this.iem = iem;
}
public void funA(){
super.funA();//值得一提的是,这句代码可以去掉,如果去掉,就是功能替换
iem.extendFun();
}
}
public class Adapter1{//客户端,最终使用方
public static void main(String args[]){
C c = new C();
SubA subA = new SubA(c);
subA.funA();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -