首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计模式,或不设计模式

设计模式,或不设计模式
EN

Software Engineering用户
提问于 2011-07-25 13:29:10
回答 9查看 12.9K关注 0票数 30

设计模式很好,但很复杂。我们应该在小项目中使用它们吗?实现设计模式需要更复杂的开发人员,这反过来又增加了项目成本。另一方面,它们使代码整洁干净。它们对小型项目是必要的吗?

更新:当团队不能有效地处理设计模式时,我们应该坚持使用设计模式吗?

EN

回答 9

Software Engineering用户

回答已采纳

发布于 2011-07-25 13:40:50

设计模式很好,但很复杂。

这是一个错误的假设。设计模式旨在消除现有代码的复杂性,并有助于开发人员之间的通信。当设计模式引入更高层次的复杂性时,它们就会被滥用。

实现设计模式需要更复杂的开发人员,这反过来又增加了项目成本。

这也是一个错误的假设。任何开发人员都应该在代码中争取最低限度的复杂性。随着维护和扩展性成本的降低,一个好的开发人员非常值得他的钱。

它们对小型项目是必要的吗?

当它们帮助使代码更有表现力、更不复杂时,它们是必要的。这与项目规模无关。一个好的开发人员(tm)不会在适当的时候过度设计和使用它们。

票数 83
EN

Software Engineering用户

发布于 2011-07-25 13:56:47

Falcon的回答是正确的,但我也想补充补充信息。

我最近(在一年半内)学习了设计模式。起初,他们成了我所有问题的“黄金”锤子。我最近才意识到,我开发的很多应用程序都是过度设计的。最近,我的任务是为我编写的一款软件添加额外的功能,但当我看到它时,我对它的复杂性感到畏缩。那是因为当时,我正处于设计模式的高度兴奋之中,并且在用我的新发现的知识做一些理由。这不是我们应该采取的方式。现在,我设计我的项目时考虑到了简单性,或多或少忽略了设计模式,除非有一个非常明确的理由将它们引入进来。这通常出现在重构过程中(至少对我来说)。

设计模式还允许开发人员共享一种通用语言。当每个开发人员都知道该语言时,您可以非常简单地解释大部分代码。

票数 13
EN

Software Engineering用户

发布于 2011-07-25 13:58:35

你总是在使用某种模式。唯一的区别是您的模式是否尽可能简单。spaghetti和meatball代码背后的代码遵循一种模式,它恰好是一种非常难理解的模式,因为它将所有东西放在一个地方(谁想使用包含SQL代码段、UI操作和业务逻辑的代码,都在一种方法中)。记住,任何一个白痴都可以写一个设计得非常糟糕的软件,但是只有天才(可能是一个昂贵的天才)才能回去,然后安全地修复那个软件。

要回答你问题的一个具体部分:

实现设计模式需要更复杂的开发人员,这反过来又增加了项目成本。

我想你误解了什么是好的设计。想想看,一个有5个深循环嵌套的算法还是一个有2个深循环嵌套的算法更容易理解?哪种选择更便宜?这两个深层次的选择更容易读、写、维护和理解。那么,你为什么要证明5深循环是正确的呢?所谓的“设计模式”,顾名思义,每一次都是更简单的模式。如果您的开发人员无法编写设计良好的软件(也就是利润更高的软件),那么您需要找到能够充分理解编程以做出基本设计决策的开发人员。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/95718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档