代码小变化带来的大不同

简介: 代码小变化带来的大不同

今天上了一节设计模式的课,讨论的问题看似很简单,但是背后蕴含的思想却是巨大的。不多说废话,直接上代码。

代码一:

    public static void main(String[] args) {
        System.out.println(5+6);
    }

代码二:

  public static void main(String[]args){
    int a = 5;
    int b = 6;
    System.out.println(a+b);
  }

看到这两个代码,可能很多人都不屑一顾。(嗨,不就是增加了两个变量吗,有什么啊,结果还不是输出个11而已吗。)或者一头雾水(这是什么啊?那儿有变化啊?这点变化有什么用啊?)。

最开始我也很不理解,不知道这一点细微的变化到底有什么作用,后来在老师的引导下,我才逐渐的品味到他的味道。


变化:

从版本2到版本一实现了从有限到无限的扩展,从两个确定数相加到两个任意数相加,实现了从有限2个数相加,到无限个数相加。同时通过a+B实现了对算法的封装,从而实现了在这里面具体的加法复用


看完上面这段话,不知道你有什么感想。

有限到无限,增加了两个变量,怎么就有限到无限了,这不还是5+6吗?虽然看起来是这样,但是仔细琢磨你会发现,有了这两个变量、5和6、可以换成7、8、9、10 …,你可以换成任意的数字,这就是有限到无限。

对算法的封装,为什么是对算法的封装呢?难道封装的不是加法吗?从代码来看,似乎还是加法,但是如果我们用抽象的观点来看,加法是算法的一种,算法是对加法的抽象,这里是加法,别处可以是减法、乘法、除法、各种算法。

加法的复用,这句话就是落到我们写的这个具体的代码上,复用的是加法。


目录
相关文章
|
5月前
|
JavaScript 算法
Vue的数据为什么频繁变化但只会更新一次
Vue的数据为什么频繁变化但只会更新一次
101 1
|
11天前
|
存储 前端开发 JavaScript
深度理解Promise状态变化_配合小Demo
本文通过代码示例深入探讨了JavaScript中Promise对象的三种状态(pending、rejected、resolved)及其变化过程,解释了在什么情况下Promise会从pending状态变为resolved或rejected状态,并演示了如何通过Promise的状态管理异步操作。
9 0
深度理解Promise状态变化_配合小Demo
|
3月前
|
测试技术
软件复用问题之捕捉领域变化,如何解决
软件复用问题之捕捉领域变化,如何解决
|
3月前
|
人工智能
Sora信息问题之模拟对象状态变化存在的局限如何解决
Sora信息问题之模拟对象状态变化存在的局限如何解决
32 0
|
5月前
|
弹性计算 Serverless
函数计算的功能变化
函数计算的功能变化
36 2
|
5月前
|
JavaScript
vue开发过程中,修改了数据,但是页面死活不渲染改变!没变化!怎么办?6种方法解决~
vue开发过程中,修改了数据,但是页面死活不渲染改变!没变化!怎么办?6种方法解决~
|
12月前
|
C# C++
|
前端开发 JavaScript Java
总结自己使用技术的变化
根据自己的经验,总结自己使用技术的变化
139 0
|
算法 人工智能 机器学习/深度学习
写1行代码影响1000000000人,这是个什么项目?
这些万里挑一的年轻技术人不约而同地聚集在了这里。
1608 0
写1行代码影响1000000000人,这是个什么项目?
|
监控 C#
c# 判断文件是否发生了变化
你这个是想文件发生改变时,自动调用一个函数,做出一些操作呢。还是有一个按钮(或者别的什么),你去点击一下,然后检测下一个文件,是否发生了变化?   下面的代码,监控d盘下的所有.txt文件的修改 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
2231 0