设为首页 加入收藏

TOP

你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!(三)
2023-07-25 21:23:41 】 浏览:66
Tags:快用 Java 计模式
rocessing:" + param); if (getNextProcessor() != null) { getNextProcessor().process(param); } } }

public class ProcessorImpl2 extends AbstractProcessor {

    public ProcessorImpl2(Processor next) {
        super(next);
    }

    @Override
    public void process(String param) {
        System.out.println("processor 2 is processing:" + param);
        if (getNextProcessor() != null) {
            getNextProcessor().process(param);
        }
    }
}

使用示例:

static void test1() {
    Processor p1 = new ProcessorImpl1(null);
    Processor p2 = new ProcessorImpl2(p1);
    p2.process("something happened");
}

java8重构后,只需要一个新接口

@FunctionalInterface
public interface NewProcessor {
    Consumer<String> process(String param);
}

同样的效果,可以写得很简洁:

static void test2() {
    Consumer<String> p1 = param -> System.out.println("processor 1 is processing:" + param);
    Consumer<String> p2 = param -> System.out.println("processor 2 is processing:" + param);
    p2.andThen(p1).accept("something happened");
}

andThen天然就是getNextProcessor的另一种表达。

重要提示:什么时候该用lambda,什么时候不用,这是要看情况的,如果处理逻辑相对比较简单,可以用lamdba来重构,以便让代码更简洁易读,如果处理逻辑很复杂,应该还是用“类”。

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇不允许还有Java程序员不了解Block.. 下一篇【GiraKoo】Java Native Interfac..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目