首先, 我不是大牛, 更不是大嘴; 因此, 我将尽可能地从务实的角度审视每一种设计思想, 并提供并非完全正确的运用建议. 当然, 我绝对不保证这篇随笔的完全正确 - 这样的话题总是引起大量的论战, 但是请放文明些. 此外, 我并没有经过任何正规的计算机领域的培训, 这在一定限度上制约了这篇随笔的理论水平, 但在另一个角度, 它又让我能够有不同于常人的思考.
事实上, 我们不必受到任何设计思想的制约 - 无论是面向对象或是面向过程. 按我的观点, 任何设计思想的运用, 其目标都在于更高的复用性和可维护性, 当然, 这二者也可能冲突; 那就见仁见智了. 这意味着不必拘泥于继承, 封装与多态的教条观点, 用务实的心态完成设计与代码. 因此, 我推崇渐进式的设计, 而非在项目开始时就一步到位. 这样可以减少为了设计而设计的代码的存在, 进而提高程序的性能.
一切皆对象的观点, 实则是大嘴们为了鼓吹他们的"先进"思想而放出的不切实际的观点; 事实上, 是否严格按照各类大师/大嘴们提出的设计指南进行设计并不一定能得出最符合当前需求的结果, 这需要自己探索, 而不是将他人的观点全盘接受. 我以前就犯过这样的毛病, 结果写出来一堆四不像; 需求真的变化的时候, 才知道大嘴们吹嘘的复用性原来都是空中楼阁. 这意味着每个人都可以有自己的风格和设计原则 - 适合自己的, 就是最好的.
是否在
学习面向对象的语言之前, 一定需要学习面向过程的语言? 我认为, 其实是大可不必的. 我们学习任何一门语言的时候, 都不需要, 也不应该全盘接受语言的设计思想, 甚至将其奉为
圭臬, 非此设计思想不可. 一旦程序员能够灵活运用语言特性允许的设计方式, 最初学习的语言就不再重要了. 我再说一次, 不要拘泥于任何一个设计思想; 适合自己的, 就是最好的.
我甚至无法为这篇文章提供一个符合内容的标题; 它太散乱了, 以至于我无法归结出任何一个适当的中心. 当然, 欢迎任何人提出自己的思想, 或者是批判我糟糕的随笔 - 就年龄而论, 你们都是长辈, 我理应提供应有的敬意.
posted @ 2008-05-11 14:09
随风流月 阅读(1496)
评论(12) 编辑 收藏 所属分类:
H 设计思想