java线程基础巩固

时间:2023-02-15 00:02:50

在上篇【http://www.cnblogs.com/webor2006/p/7709647.html】中已经学习了Runnable出现的好处,其它这种设计是采用的一种策略模式,所以为了进一步理解Runnable的设计思想,用策略模式来举例来体会一下。

这里以实现个人所得税的计算功能为例,由传的实现一步步来模拟Runnable的样子去优化代码,下面开始:

java线程基础巩固

java线程基础巩固

编译运行:

java线程基础巩固

程序实现是没任何毛病,但是!!!这种方式不是特别好,因为如果将来税率变了之后,我们还得修改这块的代码:

java线程基础巩固

由于是DEMO还看不出有啥大的问题,要修改也比较容易,但是~~如果在真实的商业应用中就得去改对应界面的代码,这从设计开闭原则来说就不符合了,所以这里抽象一个计算税率的接口出来专门来做这个计算,改造代码如下:

java线程基础巩固

然后将刚才咱们的具体实现细节放到实现类中:

java线程基础巩固

在计算中去使用它:

java线程基础巩固

接着看一下怎么去使用它:

java线程基础巩固

编译运行:

java线程基础巩固

如果懂JAVA8的Lambda表达式的话,可以更加让代码精简:

java线程基础巩固

 

java线程基础巩固

但是采用Lambda之后其实可读性要差些,不过代码简洁,通过模拟整个过程重在体现Runnable的设计的一个思想,可以让逻辑代码跟具体实现抽离出来,更加符合面向对象的编程思想。