函数式编程思想概述和冗余的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方法,所以方法名称,方法参数,方法返回值不得不再写一边,而且不能写错
而实际上,似乎中有方法体才是关键所在