关于设计的一点(一)
开发的时候,或者说设计的时候,经常考虑的是有关如果提高扩展性,解耦云云
包括设计模式,被很多人认为设计是个比较困难的行为
实际上确实如此
而实际中设计和设计模式比想象的更加困难
难点不在于设计,而在于设计的思考与设计学习的过程
因为设计思路,设计能力都由两方面决定
1 你的经验,你合理思考下编写代码的数量
2 你的知识,你对设计模式的学习与理解程度
缺一不可,如果你发现你工作了很久,写出的代码依旧不能满意,那你可能会在经验或者知识上有所缺陷
知识教导你如何设计,如何正确的分析模型,解耦功能和对象之间的关系
而经验则能让你懂得如何适可而止,不落过度设计的漩涡
因为面对抽象设计的时候,能切开的层面和逻辑像暴风雨一样,会耗尽你的脑浆,把你拖入混乱
而成熟和经验可以把你拉回来,告诉你你真正需要干什么。
经验很重要,经验的获得也非常困难。
我的经验往往来自于很多尴尬的时刻,这种情况很多时候来自于一个可被调用方法的参数
当你的参数发生变化的时候,比如由一个变为多个,由大个的姚明变成快腿的刘翔
这个时候我的表情往往像吃了苍蝇一样精彩,了个去啊
这也是java借口希望解决的尴尬之处,很多设计模式也诞生于此(可能)
尴尬能促进你的思考,让你发挥的更多,即使无法改变现有项目的窘境,但是一个新的思考方式可以在下一次编码中实现了
这是令人窃喜的事情,一次深刻的体会,就能让大部分合格的程序员理解为什么要针对借口编程。
当然,继承有时候也能解决一些问题,但是毕竟很丑陋,而且不可避免的会在某些时候让你出现另外一种尴尬的情况。
但是至少能让你体会,尽量少用基本类型作为参数的重要。
很多真实体会的不甘和纠结,能给你带来学习的动力,这个时候去学习 实现模式,设计模式XX模式,会获得更好的效果
好像打倒boss一样,你升级了 长经验了。
你需要更多的磨难。因为魔兽有60级
我们可能更多