我正在读Erich Gamma和其他人写的"Design Patterns:Elements of Reusable Object-Oriented Software"。我决定做一些小项目,看看将设计模式应用于我编写的软件的实际结果。
我应该对它们的实现有多严格?我在互联网上看到过一些实现interpreter pattern的例子,它们只是跳过了实现中的整个类/接口/方法。应该允许一个人做同样的事情,还是更好地严格执行以避免未来的问题,即预先支持功能?或者,设计模式不应该被视为解决所有问题的答案,它们是否应该以一种适用于当前情况的方式来应用,即特定于代码?
发布于 2009-01-11 22:21:28
没有什么灵丹妙药。设计模式是一种指导原则,一种可重用设计的公式,这些设计在过去曾为其他人工作,以实现常见问题的解决方案。但是,如果该模式的某些部分会不必要地使您的软件复杂化,那么您就没有必要完全使用它。
设计模式的目标是简化和简化您的设计。如果它不能做到这一点,它就不值得使用。
其他人可能有不同的观点。
发布于 2009-01-11 22:19:20
这就是为什么它们被称为模式,而不是算法或接口。
它们是对不断出现在应用程序中的设计的通用描述。每个实现都将针对使用它的情况而专门,尽管它如何做事情的总体模式将是相同的。
发布于 2009-01-11 22:19:39
对于您在设计模式方面所做的任何事情,您应该能够问自己一个简单的问题:这如何让我的软件变得更好?具体一点。如果您无法列出在特定情况下实现设计模式的具体优点,请不要费心;同样,如果您掌握了该模式的“要点”,则很可能能够实现对您的情况有用的部分。
“设计模式”这本书在这里特别好--它们列出了使用每种模式的具体优点,以及它们适合的详细案例,以及为什么。
https://stackoverflow.com/questions/433837
复制相似问题