代码之家  ›  专栏  ›  技术社区  ›  Kniganapolke

学习设计模式的学生的实践任务[关闭]

  •  6
  • Kniganapolke  · 技术社区  · 15 年前

    我需要为学习设计模式的学生撰写一些任务(问题)。 请给我一些实际的短期任务,以帮助学生理解这一理论。

    我需要一些有趣的创意设计模式的想法。 如果你能分享你的经验,那就太好了:当一个特定的设计模式完全适合你的设计时。

    6 回复  |  直到 12 年前
        1
  •  2
  •   Grundlefleck anujkk    15 年前

    我最近上了一门设计模式方面的课(在半学期的课程中,我们花了3-4周的时间研究设计模式)。

    我们的许多实践,我们的课程包括使用 JHotDraw 探索它们对模式的使用(以及如何开发框架)。jhottraw是结构化绘图编辑器的一个框架,例如有向图,或者我们使用的一个例子是绘制一个orry。为了使用jhottraw,必须理解几个模式。所使用的创作模式至少包括抽象工厂和原型模式。

    可能需要一段时间来确定jhottraw的哪些部分适合您的课程,但是javadoc确实使它很有帮助,可以识别类使用的模式等等。

    如另一个答案所述,head-first设计模式中的示例也非常出色,我们在课程中也使用了它们(荣誉年本科水平)。

        2
  •  5
  •   nanda    15 年前

    我在书中找到了例子” Head First Design Patterns “很容易理解,但足以理解模式。

        3
  •  2
  •   Willis Blackburn    15 年前

    我想您应该提出一些场景,并询问学生他们将为每个场景使用哪种设计模式。

    例如:我们有一个表示文件的对象,并且有打开和关闭方法。我们希望在应用程序调用open或close时有选择地记录消息。

    另一个例子:我们有一个反应非常缓慢的下游系统。我们想要设计一个组件,它将把下游系统的请求排队,并在后台一个接一个地提供给它们。

        4
  •  2
  •   glenatron    15 年前

    如果你能想到一个项目,它可以在不同的点上使用许多模式,这可以给他们一些更丰富的东西来学习,同时反过来教学模式。我在想一个简单的HTTP服务器,在那里你可以在请求处理、日志记录、会话维护等方面应用模式,这样你就可以把不同的模式作为单独的主题来教授,但最终会得到一个结构相对良好的整体,并提供使用不同模式的实践经验。探索和它们的相互作用。

        5
  •  1
  •   wheaties    15 年前

    评论的后续行动:

    我最初的目的只是建议一个问题域,这样你就可以把整个系统的每个部分分解成更有意义的部分,这样学生就可以清楚地看到每个模式的需求。我想,你可以将这个想法应用到一些更大的任务中,让他们看到它们是如何协同工作的,而不是几个不相关的任务。这对一个学生来说可能太多了,现在我想起来了,它并没有真正解决你的问题。

    这是一个真实的例子

    Sale(Integer_quantity, ICatalogItem _item, IDiscount _discount) implements ITransaction
    Refund(Double _amount, IOrderNumber _orderNumer) implements ITransaction
    

    这是因为有人决定用一个神奇的数字“-1”来表示不出售。你可以想象当人们以1美元退款时发生了什么。这个 IDiscount 当然,这是一种计算销售价格的战略模式。我们有一个抽象的工厂对象来创建所有的销售。

        6
  •  0
  •   Kniganapolke    14 年前
    1. 在整理的时候 JHotDraw 我找到了这个学术工具- DP Miner .
      应该是这样的 分析系统并搜索与某些设计匹配的类 模式 .它接受XML(XMI) 描述系统的文件 文件可以由Rational生成 反向工程后的玫瑰 代码,我用enterprize 建筑师)。独立的 工具版本可以发现 只有4个硬编码模式。
      这个 该工具也可作为插件用于 日食。所以这个版本接受 同时描述 模式并使用此描述 在系统中发现它。所以 其思想是要求学生为其他模式创建XML描述 在不同的地方发现它们 系统 .
      然而,我花了 昨天大约5个小时 让所有这些工作…我设法 仅从独立获取结果 使用其测试描述的版本 jhottraw的文件(我生成了 使用企业架构师拥有XML, 但没有结果)。 可能会晚一点,我会设法做到的 为我工作并将更新此 邮政。

    2. 朱迪思的“C 3.0设计模式” Bishop包含所有人的练习 经典的设计模式。

    推荐文章