设计模式在现实世界中的渗透程度如何?您是否在日常工作中使用它们 - 与同事讨论如何以及在何处应用它们 - 或者它们仍然更像是一个学术概念?
它们真的为您的工作提供实际值(value)吗?或者它们只是人们谈论的听起来很聪明的东西?
注意:出于此问题的目的,请忽略“简单”设计模式,例如单例。我正在谈论设计您的代码,以便您可以利用 Model View Controller 等。
最佳答案
任何编写良好的大型程序都会使用设计模式,即使它们没有被命名或识别。这就是设计模式,即重复且自然发生的设计。如果您正在与丑陋的 API 进行交互,您可能会发现自己实现了一个Facade
来清理它。如果您需要在需要解耦的组件之间进行消息传递,您可能会发现自己正在使用Observer
。如果您有多种可互换的算法,您最终可能会使用策略
。
了解设计模式是值得的,因为您更有可能识别它们,然后更快地收敛到干净的解决方案。然而,即使您根本不了解它们,您最终也会创建它们(如果您是一名优秀的程序员)。
当然,如果您使用现代语言,您可能会被迫使用它们来做某些事情,因为它们已融入标准库中。
关于language-agnostic - 你使用设计模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11586/