![]() |
1
2
我最近上了一门设计模式方面的课(在半学期的课程中,我们花了3-4周的时间研究设计模式)。 我们的许多实践,我们的课程包括使用 JHotDraw 探索它们对模式的使用(以及如何开发框架)。jhottraw是结构化绘图编辑器的一个框架,例如有向图,或者我们使用的一个例子是绘制一个orry。为了使用jhottraw,必须理解几个模式。所使用的创作模式至少包括抽象工厂和原型模式。 可能需要一段时间来确定jhottraw的哪些部分适合您的课程,但是javadoc确实使它很有帮助,可以识别类使用的模式等等。 如另一个答案所述,head-first设计模式中的示例也非常出色,我们在课程中也使用了它们(荣誉年本科水平)。 |
![]() |
2
5
我在书中找到了例子” Head First Design Patterns “很容易理解,但足以理解模式。 |
![]() |
3
2
我想您应该提出一些场景,并询问学生他们将为每个场景使用哪种设计模式。 例如:我们有一个表示文件的对象,并且有打开和关闭方法。我们希望在应用程序调用open或close时有选择地记录消息。 另一个例子:我们有一个反应非常缓慢的下游系统。我们想要设计一个组件,它将把下游系统的请求排队,并在后台一个接一个地提供给它们。 |
![]() |
4
2
如果你能想到一个项目,它可以在不同的点上使用许多模式,这可以给他们一些更丰富的东西来学习,同时反过来教学模式。我在想一个简单的HTTP服务器,在那里你可以在请求处理、日志记录、会话维护等方面应用模式,这样你就可以把不同的模式作为单独的主题来教授,但最终会得到一个结构相对良好的整体,并提供使用不同模式的实践经验。探索和它们的相互作用。 |
![]() |
5
1
评论的后续行动: 我最初的目的只是建议一个问题域,这样你就可以把整个系统的每个部分分解成更有意义的部分,这样学生就可以清楚地看到每个模式的需求。我想,你可以将这个想法应用到一些更大的任务中,让他们看到它们是如何协同工作的,而不是几个不相关的任务。这对一个学生来说可能太多了,现在我想起来了,它并没有真正解决你的问题。 这是一个真实的例子
这是因为有人决定用一个神奇的数字“-1”来表示不出售。你可以想象当人们以1美元退款时发生了什么。这个
|
![]() |
6
0
|