晕了,楼上的根本就没弄明白别人说什么……
写一个程序一开始应该干什么?或是楼上的根本就没弄明白什么叫面向对象程序设计。一个程序着手写之前不做解决方案的思考,不去思考程序的流程模块,那估计程序写出来的也是垃圾多。所有的程序写出来都要遵守易维护、可复用、易修改等等原则,如果一开始不去思考解决方案,那你最后写出来的程序根本没办法做维护,别人要增加一个小小的功能,最后整个程序都要修改,这些都能叫好程序?天啊……没听说过。
要做到这些东西那就必需引入设计模式,设计模式是一种编程的思想,让你的程序更易于维护和修改,并更关注于那些东西可复用。但是要引入设计模式,那在开始定程序以前就必而要做流程设计和思考解决方案。如果不考虑这些的话,我敢说这个写程序的人再牛也不会强到那去,最少写出来的程序自己也难以维护和修改,而且这样的程序就算把源代码全公开给别人,别人也要头大……因为这些人就算把程序写出来了,那也只能称为一个可运行的程序,而不能称之为好的程序。就算别人拿到了源代码要修改也是一件很痛苦的事。
程序初期会做很多的需求分析,就算如此,程序确实还是没办法一步考虑到位,但是程序是死的,人是活的,所以在写程序的时候你就必需考虑到以后的扩展,那么就必需要规划好程序所预留的接口,以便于以后如果功能不足的时候能更进一步的扩展,而考虑这些接口,你不做程序规划,不做解决方案的思考,能行吗?
一个程序的所有的代码全写到控件动作里这样能写出好的程序?楼上的这也太夸张了吧?写程序怎么能和会计的流水帐想比较呢?不懂别装……你这等同于说一个像流水帐一样的作文硬要说成是好的作文一样的道理。
还有一点,对于不同的观点我认为大家可以讨论,但是你看不起别人以前先检讨一下自己吧。还有……建议楼上的学完了设计模式来回头来看看别人说的话是否正确。就算是做一个网页,写一个javascript都需要规划,都需要考虑以后的维护性的扩展性,这些都需要做前期的规划和思考解决方案。楼主你最看不起的就是不懂装懂的人,那么请问你自己呢?
不过说实话,说了这么许多,对于一个从来没学过设计模式,确实有些难以理解。就像以前有人跟我说过,程序中能使用接口的地方尽量的使用接口来实现,我以前一直不明白为什么要这样,直到我看设计模式并用设计模式做了好几个程序以后我才真正的体会到这句话的含意,这是同一道理。这就是迪米特法则的核心思想:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调 用另一个类的某一个方法的话,可以通过第三者转发这个调用。以此来尽量降低成员的访问权限,这样也能更好的降低类与类之间的耦合程度,类之间的耦合越弱,则越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
PS:设计模式我还在学,说实在的,我也不是什么高手,只是认为程序员都会有一个过程,新手写程序往往一拿到一个程序就开始编码,而当写程序几年以后就开始关注程序的布局及解决方案,写程序经验比较丰富以后往往一开始不是写编码了,而是一开始做的就是程序的设计及建模,因为他们知道一个程序完成了布局和建模以后那后面就等同于列了一个标题往程序里插代码和模块。这样写起来会很轻松,而且因为可复用原则和,迪米特原则及依赖倒转等原则的存在,那这样代码的可利用率会大大的提高,这样将大大的减轻了编码的难度以及代码的简洁度,并且结构非常的清晰,能更好的降低编码过程中的错误率,这样在实际编码的速度上会比不做规划的程序员的编码速度快很多。事实上我转发这篇贴子的目的则在于让还在关注编码的朋友更应该关注的是面向对象的思想,而不是某种语言……
[[it] 本帖最后由 pacocai 于 2008-3-9 02:38 编辑 [/it]]