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

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

面向对象的思想:
做一件事情,找一个能解决这件事情的对象,调用对象的方法,完成这件事情。
函数式编程思想:
只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程

冗余的Runnable代码:

package com.yang.Test.LambdaStudy;

/**
 * 使用实现Runnable接口的方式实现多线程程序
 */
public class MyRunnable {
    public static void main(String[] args) {
        //创建线程实现类对象
        RunnableImpl r1 = new RunnableImpl();
        Thread t = new Thread(r1);
        //调用start方法开启线程执行run方法
        t.start();

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

        Thread t2 = new Thread(r2);
        t2.start();


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

对于runnable的匿名内部类用法,可以分析出几点内容:
Thread类需要Runnable接口做参数,其中的抽象run方法是用来执行线程任务内容的核心
为了指定run的方法体不得不需要Runnable接口的实现类
为了省去定义一个RunnableImpl实现类的麻烦,不得不使用匿名内部类
为了覆盖重写抽象run方法,所以方法名称,方法参数,方法返回值不得不再写一边,而且不能写错
而实际上,似乎中有方法体才是关键所在

posted @ 2022-07-12 13:12  我滴妈老弟  阅读(46)  评论(0编辑  收藏  举报