2009-06-14 105 views
5

可能重复:
How do you know when to use design patterns?设计模式

我如何理解/约需 “时使用何种设计模式” 的决定?

在决定在适当的地方使用适当的设计模式时,要观察哪些因素?

+3

你读过这本书吗?读了这本书。 – 2009-06-14 01:46:42

+5

我认为这可能是http://stackoverflow.com/questions/85272/how-do-you-know-when-to-use-design-patterns的副本 – 2009-06-14 01:50:03

+0

谢谢史蒂夫!链接确实有帮助。 – 2009-06-14 01:54:03

回答

3

一般来说,如果你做得对,它就有一个模式。你现在可能知道你正在使用它。

如果你做错了,它有一个反模式。但你绝对是不知道你正在使用它。

0

所有明确定义的模式都有背景,上下文和模式解决的问题。

模式的要点就是告诉你什么时候合适。

2

你不应该总是开始让你的软件适合一种设计模式,但是如果它匹配你使用它的话。在许多情况下,你所做的大多数事情都会有一种设计模式,这种模式仅仅是一种从许多不同的软件实现中观察到的模式,这种模式很常见

例如,如果您有一组所有需要同步的类。那么,这与观察者或发布/订阅模式很好,其中一个类是通知程序,另一个类监听通知。 Observer pattern

或者说你想限制游戏引擎中的内存使用,那么你可能会创建一个ObjectPool。 Object pool

或者,也许你想简化一组对象为simplr API然后使用Facade模式:只使用功能模式,如封装和继承Facade pattern

很多时候都是精品。这取决于问题。在大多数情况下,您尝试编码的大部分内容都将以模式解决,但模式不是编码的唯一方式。在许多情况下,你开始设计或有需要,它成为一种模式。

记住模式起源于观察许多类型的软件问题,它不是起点而是软件体系结构的反映。

Design pattern (computer science)

在dofactory.com的方式很多样:Design pattern tutorial by dofactory

Python的设计模式:http://video.google.com/videoplay?docid=-3035093035748181693

强制的设计模式就像是迫使OO。它应该来自手头项目的需求。

0

我发现如果我只是黑客程序,很好地使用设计模式几乎是不可能的,但是,如果你设计你的程序,那么你可以看看你想要做什么和设计模式开始出现在你的申请。

例如,如果您看到有一个指导应用程序流的类,那么Controller模式是有意义的。

使用设计模式的另一种方式是编写程序,使其工作,然后使用设计模式进行重构。我相信马丁福勒写了一本关于这个主题的书,但我对作者并不积极。

无论哪种方式,它都有助于了解您想要做什么来帮助确定哪些模式最适合。