设计模式:您是否在项目中使用它们?

时间:2010-08-11 12:38:14

标签: design-patterns architecture

您如何决定选择哪种设计模式?

我的开发项目方法一直都是。

  1. 取消业务要求。
  2. 设计数据库。
  3. 决定技术(此决定几乎总是由客户推动。)
  4. 开始开发原型。
  5. 获得原型批准。 (迭代)
  6. 构建应用程序。
  7. 发布测试版。 (迭代)
  8. 移交维修。
  9. 我不确定设计模式在哪里有用。

4 个答案:

答案 0 :(得分:6)

通常在构建原型之前,始终在构建应用程序之前,您必须对其进行设计。在这里,设计模式的知识非常方便,因为它不仅可以帮助您进行设计,还可以在与其他开发人员交流您的想法时。例如,当您告诉另一个开发人员某个特定类是工厂或另一个被实现为Singelton时,他们会立即更好地掌握他们做什么和/或如何做他们做什么以及他们如何适应应用程序的其余部分。 / p>

我非常推荐O'Reilly的“Head First Design Patterns”来帮助你入门。

答案 1 :(得分:3)

它将在第4步和第6步中有用......: - )

在原型设计中,设计模式非常方便。如果现有的架构/设计不够灵活,那么在现有原型中添加更多功能将非常麻烦。虽然这并不意味着你应该总是使用设计模式。这是他们教授的原则很重要,比如开放式原则,信息隐藏以及如何正确地做到这一点以及何时,有利于组合而非继承等。所有这些指导原则都是为了在现有应用程序中添加更多功能/原型不那么痛苦。

在您的开发生涯中,您会看到许多地方都会使用这些原则。没有必要严格遵循某些模式,但这些模式背后的原则应该尝试遵循。

希望有所帮助。

答案 2 :(得分:2)

第6步(构建应用程序)将是一个不错的选择。虽然我理解Neil关于在设计阶段(你没有真正拥有)决定设计模式的评论,但我发现它们经常在构建过程中出现,因为你正在编码/重构。当然,预先知道设计模式是什么有帮助,如果不使用它们就很难知道它们,所以它有点恶性循环。

答案 3 :(得分:1)

设计模式的使用是任何开发中固有的。你列出与否,很多实现都遵循设计模式。对设计模式的了解肯定有助于设计一个强大,可扩展,易于维护且易于理解的应用程序。在很多情况下,使用设计模式有助于优化您的解决方案。在像您提到的典型软件开发周期中,在原型设计阶段使用设计模式至关重要。

作为一个例子,假设您需要实现一个支持使用不同协议(XML / Http,WebServices等)进行通信的通信层。在原型设计中,您可以轻松实现图层,并使您的应用程序直接使用图层进行通信。如果您在原型设计中使用Factory模式和任何一个协议的简单实现,那么扩展最终应用程序就变得轻而易举。这不仅节省了整体开发时间,还确保了更清洁的开发方法。