我非常喜欢设计模式,但是我发现很难辨别何时可以应用它们。我阅读了许多解释设计模式的网站。大多数我都能理解,但在我的实际情况中很难辨认出一个模式。
这就是我问这个问题的原因。是否有任何指南/警示信号来确定使用哪种设计模式。
例如,如果您正在使用switch语句来确定需要创建哪个对象,则可能要使用工厂模式。因此,在这种情况下,switch语句是使用工厂模式的“警报”。
那么,您知道更多用于确定设计模式的“警报”吗?
我非常喜欢设计模式,但是我发现很难辨别何时可以应用它们。我阅读了许多解释设计模式的网站。大多数我都能理解,但在我的实际情况中很难辨认出一个模式。
这就是我问这个问题的原因。是否有任何指南/警示信号来确定使用哪种设计模式。
例如,如果您正在使用switch语句来确定需要创建哪个对象,则可能要使用工厂模式。因此,在这种情况下,switch语句是使用工厂模式的“警报”。
那么,您知道更多用于确定设计模式的“警报”吗?
通常情况是反过来的。不要去寻找可以使用设计模式的情况,而是寻找可以进行优化的代码。当你发现有结构不正确的代码时,请尝试找到能够解决问题的设计模式。
设计模式旨在帮助你解决结构性问题,不要为了使用设计模式而设计应用程序。
学习它们,慢慢地你就能识别和找出何时使用它们。从单例模式开始,这很简单 :)
如果您想创建一个对象的一个实例并且只有一个,请使用单例模式。假设您正在制作一个带有选项对象的程序。您不希望有多个选项对象,那样很愚蠢。单例确保永远不会有多个实例。单例模式简单易用,被广泛使用,并且非常有效。
我完全同意@Peter Rasmussen的观点。
设计模式提供了通用解决常见设计问题的方案。
我希望你能按照以下方法进行操作:
有用的链接:
sourcemaking :用多种语言(包括C++和Java)精美地解释了意图,结构和清单
维基百科:用多种语言(包括C#和Java)解释了结构、UML图和工作示例。
每个模式中的清单和经验法则在sourcemakding中提供了警报提示。