日期:2014-05-17  浏览次数:21316 次

请大神推荐一下你认为最有用的5个设计模式名称
5个就行了。当然如果你认为5个太少,可以增加,但最多不超过8个。本人菜鸟,准备学设计模式,但只想学项目开发中用的最频繁的5到8个。

------解决方案--------------------
卧槽马
马后炮
挂角马
天地炮
双车错

是5个中国象棋绝杀的用的最多的几个杀招模式,问题是你会这5个就把棋下好了??
呵呵,如果你真学他,你的棋反而会退步!!
因为棋是下出来的,不是背出来,或者“设计”出来!只有你前面的过程弄好了,到后面你就可以用那个绝杀了,如果你前面的功夫都没搞好,一开局就想着,我一炮正中,一炮沉底弄个天地炮出来绝杀!我保证你死的更快

其实设计模式这东西一样,一多半人邯郸学步没学好,反而自己都不会走了,后来干脆完全不学了!其实如果你真想学这个建议先别学模式,建议先从“设计原则”开始,然后“重构”,最后在模式。而且学模式的时候,注意那些书的重构过程(学模式最重要的就是看他引入的变化点,观察引入变好点后引起的矛盾,然后看他封装这个变化点的思路,这是一个过程!学这个千千万万别去背最后那个结果,那个结果其实最不重要滴,我知道个卧槽马模式有屁用啊,前面不准备好,你还真想去卧槽?那估计被别人卧了)

------解决方案--------------------
我建议你先把抽象类(抽象方法)、接口、继承、多态等基本概念有了一定的实践体会,再去看设计模式。设计模式当中把抽象工厂理解好了再看别的。
------解决方案--------------------
说这么多其实告诉你的是:设计原则大于设计模式

如果你遵守原则,你依赖抽象,你单一职责,那么你的设计多半差不到那里去,如果还有矛盾,自己重构也简单,而重构的过程,观察变化点的过程中才有可能出现一个和你要封装的目标类似的模式

如果你都无法做到依赖抽象,无法做到单一职责,那么所谓的设计模式根本另一个混乱的根源。这种情况下,你瞪着屏幕画一天UML,想一天的模式,确根本不知道该怎么办(还有另一种情况就是一开始就硬要往某个模式靠,但确怎么都有问题,这就好像你下棋你离卧槽马十万八千里呢,却时时刻刻都在想者我最后一步一定是卧槽马,这不是乱来吗)
------解决方案--------------------
设计模式的本质就是人肉编译器代码展开。所以C++需要设计模式,C#基本不用。
------解决方案--------------------
引用:
说这么多其实告诉你的是:设计原则大于设计模式

如果你遵守原则,你依赖抽象,你单一职责,那么你的设计多半差不到那里去,如果还有矛盾,自己重构也简单,而重构的过程,观察变化点的过程中才有可能出现一个和你要封装的目标类似的模式

如果你都无法做到依赖抽象,无法做到单一职责,那么所谓的设计模式根本另一个混乱的根源。这种情况下,你瞪着屏幕画一天UML,想一天的模式,确根本不知道该怎么办(还有另一种情况就是一开始就硬要往某个模式靠,但确怎么都有问题,这就好像你下棋你离卧槽马十万八千里呢,却时时刻刻都在想者我最后一步一定是卧槽马,这不是乱来吗)


应该说:设计模式的最终目的是设计原则(六个吧?)高内聚,低耦合,等等。
------解决方案--------------------
确实如曹版所说,先把C#的语法精华掌握好,你会发现不自觉的已经在用模式了
------解决方案--------------------
单例
工厂(简单就可以了,方法还有用到的时候,抽象基本没机会用)
模板
观察者
策略
适配器



------解决方案--------------------
单例,工厂,观察者,命令,装饰
------解决方案--------------------
有时候你自己写代码的过程中不知不觉用到了设计模式,只是你自己不知道而已