你如何知道何时使用设计模式?

任何人都可以阅读GoF书籍来了解设计模式是什么以及如何使用它们,但设计模式解决问题时需要弄清楚什么是过程。 模式的知识是否会推动设计,还是有办法找出模式如何用于改变设计?

换句话说,模式有没有模式?


设计模式应该提供一个可以解决问题的结构。 当解决一个真正的问题时,你必须考虑解决这个问题的许多微小变化,看看是否有任何符合设计模式。 尤其是,您可能需要概括您的问题或其解决方案,以便使设计模式更加合理。

答案是,这是一门艺术。 了解设计模式无疑是重要的一步。 一种习惯这种事情的方法是研究设计模式的应用,而不仅仅是模式。 看到一种模式的许多不同应用程序可以帮助您随着时间的推移更好地将任务映射到模式。


我强烈推荐阅读O'Reilly的Head First Design Patterns。 这解释了这些模式如何在现实世界中使用。

首先设计模式

我还补充说,不要过多地考虑设计。 更多的是,寻找一种模式可能有助于解决的“代码气味”。


把问题翻过来:你应该做的模式是“什么模式适合我的问题”。 考虑一个非常简单的模式,在数组中找到一个元素。 在C中,这是类似的

TYPE_t ary[SIZE] = // ... gets initialized somehow
size_t ix ;        // Your index variable

for(ix=0; ix < SIZE; ix++){
    if (ary[ix] == item) {
       return ix ;
    }
}

你不看代码,并想“我可以在哪里使用它”,你看看问题并说“我知道如何在数组中找到元素?”

更广泛的模式实际上是一样的。 你需要有许多不经常改变的数据结构副本---这让你认为“享元”。 你想要一个生活在网络边界两侧的东西,你认为代理。

当你学习模式,特别是GoF时,问自己“什么情况需要这种模式?我有没有看过这种模式?以前的工作我可以使用这个模式吗?我在哪里可以找到这样的例子在我自己的生活中? “

链接地址: http://www.djcxy.com/p/50221.html

上一篇: How do you know when to use design patterns?

下一篇: Why is MouseAdapter an adapter?