美文网首页
9.3完全解耦(适配器设计模式)下

9.3完全解耦(适配器设计模式)下

作者: 陈晓松快点跑 | 来源:发表于2024-10-01 11:21 被阅读0次

Processor 接口↓↓↓

Processor 与 Filter 有相同的行为,所以可以用适配器包装

public interface Processor {
    String name();
    Object process(Object input);
}

Filter 类↓↓↓

Processor 与 Filter 有相同的行为,所以可以用适配器包装

public class Filter {
    public String name() {
        return getClass().getSimpleName();
    }

    public Waveform process(Waveform input) {return input;}
}

FilterAdapter 适配器↓↓↓

适配器FilterAdapter 实现接口Processor

public class FilterAdapter implements Processor {

    Filter filter;

    public FilterAdapter(Filter filter) {
        this.filter = filter;
    }


    @Override
    public String name() {
        return filter.name();
    }

    @Override
    public Object process(Object input) {
        return filter.process((Waveform) input);
    }
}

HighPass 类↓↓↓

public class HighPass extends Filter {

    double cutoff;

    public HighPass(double cutoff) {this.cutoff = cutoff;}

    public Waveform process(Waveform input) {
        System.out.println("cutoff ----> " + cutoff);
        return input;
    }

}

FilterProcessor类↓↓↓

main函数在此
FilterAdapter适配器类将HighPass包装了一下
FilterAdapter是一个Processor
HighPass是一个Filter
Apply.process()接受的是Processor

public class FilterProcessor {
    public static void main(String[] args) {
        Waveform w = new Waveform();
        Apply.process(new FilterAdapter(new LowPass(1.0)), w);
        Apply.process(new FilterAdapter(new HighPass(2.0)), w);//看下面的Apply.process
        Apply.process(new FilterAdapter(new BandPass(3.0,4.0)), w);
    }
}

Apply.process

public class Apply {
    public static void process(Processor p, Object s) {
        System.out.println("Using Processor ----> " + p.name());
        System.out.println(p.process(s));//这里打印了 Waveform
    }
}

相关文章

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 设计模式

    设计模式要干的事情就是解耦。创建型模式是将创建和使用代码解耦,结构型模式是将不同功能代码解耦,行为型模式是将不同的...

  • ListView中BaseAdapter的详细使用以及优化

    一、概念和机制 适配器模式的使用,LisView的显示和数据源解耦。(这个先挖坑,在学了适配器模式之后会回来补充)...

  • AgilePPP 第 13-17 章 笔记

    设计模式 COMMAND 模式 COMMAND模式对命令发送者和接收者完全解耦,只关心收到的命令类型并执行相应的操...

  • 什么是耦合,解耦的几种方式

    结果先行,解耦的几种方式主要包括利用继承思想形成的多态性,如类的向上转型或接口回调。已经使用适配器设计模式。 在项...

  • 设计模式之解耦

    设计模式经常考虑的一个问题是将对象间关系解耦,逼近开闭原则,使得代码容易扩展 最近设计到读写者间信息的传递,wri...

  • 设计模式详解——适配器模式

    本篇文章介绍一种设计模式——命令模式。本篇文章内容参考《JAVA与模式》之适配器模式,Android设计模式源码解...

  • 前端请求二进制流文件

    需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,webclient需...

  • 命令模式(Command)

    请求发送者与接收者解耦——命令模式(一)请求发送者与接收者解耦——命令模式(二)请求发送者与接收者解耦——命令模式...

  • 结构型 代理模式(文末有项目连接)

    1:什么是代理模式 2:没用代理模式时的实例 3:使用代理模式将其解耦(静态代理) 3:使用代理模式将其解耦(动态...

网友评论

      本文标题:9.3完全解耦(适配器设计模式)下

      本文链接:https://www.haomeiwen.com/subject/optsrjtx.html