函数式编程思想概述-冗余的Runnable代码

函数式编程思想概述

在数学中,函数就是有输入量、输出星的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调"必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法―—强调做什么,而不是以什么形式做。

冗余的Runnable代码

传统写法

当需要启动一个线程去完成任务时,通常会通过`java.lang .Runnable`接口来定义任务内容,并使用java.lang.Thread类来启动该线程。代码如下:

package Demo01.Lambda;

public class Demo01Runnable {
    public static void main(String[] args) {
        //创建runnable接口的实现类对象
        RunnableImpl run = new RunnableImpl();
        //创建Thread类对象,构造方法中传递Runnable接口的实现类
        Thread t = new Thread(run);
        //调用start方法开启新线程,执行run方法
        t.start();

        //简化代码,使用匿名内部类,实现多线程程序
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"创建了一个新的线程");
            }
        };
        new Thread(r).start();
        //简化代码

        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"创建了一个新的线程");
            }
        }).start();
    }
}

代码分析

对于Runnable的匿名内部类用法,可以分析出几点内容︰  

  Thread类需要Runnable接口作为参数,其中的抽象run方法是用来指定线程任务内容的核心;·

  为了指定run的方法体,不得不需要Runnable接口的实现类;  

  为了省去定义一个RunnableImpl实现类的麻烦,不得不使用匿名内部类﹔  

  必须覆盖重写抽象run方法,所以方法名称、方法参数、方法返回值不得不再写一遍,且不能写错

  而实际上,似乎只有方法体才是关键所在。

 

posted @ 2022-07-08 13:40  ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ  阅读(27)  评论(0)    收藏  举报