架构师修炼之道~
第一关:连连看!
版本1:
版本2:
版本3:
版本4:
版本5:
版本6:
版本7:
以上七个版本的代码,他们之间的不同是什么呢?每个版本的修改反映了什么问题呢?
以下是小编对各版本代码的思考:
【版本1】
特定客户在特定阶段的一个特定需求。使用魔法值将内容写死了,只能给想要求5+6的特定的用户使用,无法进行代码复用。
【版本2】
较版本1优化部分:客户的需求不再通过魔法值来进行实现,而是通过变量,引入了变量就可以进行加法运算的复用。
待完善部分:
1、a=5,b=6;想要计算其他两位数(7与8)的和需要对代码进行修改。(不符合开闭原则)
2、print a+b;通过表达式将结果打印出,不具备封装性。
3、只能计算两位数的加减,无法计算多位数的加减。(拓展性,应变能力不强)
【版本3】
较版本2优化部分:
将计算结果进行了封装,结果作为一个整体输出。
待完善部分:
a=5,b=6;想要计算其他两位数(7与8)的和需要对代码进行修改。(不符合开闭原则)
【版本4】
较版本3优化部分:
a,b的值终于不是写死的了,而是通过用户的输入来进行赋值,这样可以满足用户对于两位数求和的所有需求。
【版本5】
较版本4优化部分:
1、最后输出的结果不再是打印在控制台里面,而是以提示框的形式展示给用户。
2、方法最后的输出结果不再是一个写死的变量,而是一个参数。
思考(为什么版本5要有MsgBox(c) 这段代码的改动呢?作用是什么呢?就仅仅是用户体验度的问题么?)
【版本6】和【版本7】
就是向程序员展示更多上帝(客户)的不同需求了,感觉之前写的那些代码,都是在给自己挖坑(⊙o⊙)…,当我们遇到很多不同需求用户的时候,我们的代码就不能够满足这种多态的需求了。
这时作为程序员的我们要如何应对这突如其来的不同用户的不同需求呢?
是时候展示真正的技能了---设计模式登场!
待续......^_^