Rob*_* S. 63 oop design-patterns
任何人都可以阅读GoF书籍以了解设计模式是什么以及如何使用它们,但是什么是确定设计模式何时解决问题的过程?模式的知识是否推动了设计,或者有没有办法弄清楚如何使用模式来改变设计?
换句话说,模式有模式吗?
Big*_*ump 39
我强烈推荐阅读O'Reilly的Head First Design Patterns.这解释了如何在现实世界中使用这些模式.

我还要补充一点,不要试图设计过多的图案.更多,寻找模式可能有助于解决的"代码味道".
EfF*_*ort 38
设计模式都应该提供一种结构,其中的问题是可以解决的.在解决实际问题时,您必须考虑解决该问题的许多微小变化,以确定是否符合设计模式.特别是,您可能需要概括您的问题或其解决方案,以使设计模式适合.
答案是,这是一门艺术. 了解设计模式无疑是重要的一步.习惯这种事情的一种方法是研究设计模式的应用,而不仅仅是模式.查看一种模式的许多不同应用程序可以帮助您随着时间的推移更好地将任务映射到模式上.
kyo*_*ryu 12
大多数人都没有理解的基本模式的核心概念.不要将它们视为数据结构或算法.
相反,将您的代码视为发送消息的人,例如传递笔记或发送信件.每个对象都是一个"人".
您组织"人员"的方式以及他们用来向对方发送消息的模式是模式.
Cha*_*tin 11
把问题翻过来:你应该做的模式是"什么模式适合我的问题".考虑一个非常简单的模式,在数组中查找元素.在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 ;
}
}
Run Code Online (Sandbox Code Playgroud)
你不看代码并想"我在哪里可以使用它",你看问题并说"我知道如何在数组中找到一个元素吗?"
更广泛的模式确实以同样的方式工作.您需要拥有许多不经常更改的数据结构副本 - 这会让您想到"Flyweight".你想要一些生活在网络边界两侧的东西,你认为是代理.
当你研究模式,尤其是GoF时,问问自己"这种模式需要什么样的情况?我以前看过这种模式吗?我以前的工作中有什么用呢?我在哪里可以找到一个这样的例子? "
您是如何学习何时使用 if 语句的?
我之所以这样比喻,是因为它是一个更大的结构,您需要先了解其来龙去脉,然后才能有效地使用它。if 语句解决了一类需要分支的问题。桥接模式解决了一类问题。我对他们的看法确实没有什么不同。
| 归档时间: |
|
| 查看次数: |
35114 次 |
| 最近记录: |