请问banq---设计模式离我一步之遥还是十万八千里

做java开发3年多了,老实说从来没有遵从过任何一种设计模式。之前是做j2me手机游戏开发,虽然在编码的时候逐渐体会到写代码只是软件开发中最底层的工作,应该提升到使用一种设计思想来规范和约束自己的代码,但是总觉的手机游戏都是1、2万行代码的产品,开发周期也很短,所以没有去交这个真儿,因此和设计模式擦肩而过。直到最近换了一家新公司,做j2ee的开发,幸运的参与到一个新项目中,由于受到jdon的影响,才开始学习设计模。花了一个礼拜去看设计模式这本“古老”的书。说真的,一头雾水,只是觉得在当前使用的框架中能看到设计模式的影子,帮助我对使用的框架有了进一步的了解,但是依然不知道在自己的项目中如何去使用它。
现在新项目正处于需求分析阶段,项目经理带领我们使用rup统一过程和uml对需求进行分析,从中抽象出对象和建立这些对象的联系。但是当我问项目经理,在我们的项目中应该怎样使用设计模式的时候,项目经理也有点迷惑,他说我们使用ejb,使用hibernage等等技术,这些技术已经使用了设计模式,我们更多的是在做业务逻辑,基本上用不到设计模式。这让我很惊讶,是不是这次我又要和设计模式擦肩而过了呢?还是说我根本就是提错了问题,业务逻辑的开发是不需要设计模式的。
banq,看了你很多的文章,再帮我解解惑吧,赫赫

一次性开发的时候基本不用,如果中了需求不变这种大奖,它也没用了。
设计模式是为需求变更准备的,或者通过领域调查能够预见到一些可能性大的变更,在设计时就考虑进去。
技术上的模式有些被框架实现,但是总是技术层次,业务层次的模式就要自己从那些从事这个领域的人那里去了解,他们会比我发现得早,只不过是用行业语言来告诉我,我再理解并解释成程序语言。

你们项目经理说得不错,现在做项目的时候多半都是专注于业务逻辑。除非你不用struts,Hibernate等框架,你可能会考虑一下如何能实现一个灵活自由的框架(比如struts),但是现在这些东西人家都已经帮你做好了,我们做的只是在这个框架中填东西而已。设计模式是用来抽象那些各个项目中不变的东西,然后实现重用,如果你的业务逻辑没有需要重用的部分,用不用什么设计模式都没有什么问题。当这些业务逻辑很复杂,而且有很多相关部分,有很多需要被重复使用的时候,可能会考虑使用设计模式来优化它们,总之一句话,不要为了设计模式而使用设计模式,设计模式只是让你的程序变得优雅一点而已。

设计模式可以帮你合理规划你的代码,增强内聚性,降低耦合性,所以在复杂的业务逻辑代码中也可以用。即使以后不需要扩展,也可增强代码的可读性。建议你先看看设计模式的原则(如开闭原则等)。