为什么要使用设计模式?
Source: Dev.to
了解设计模式的初衷非常重要:它们并不是可以随意拼凑、胡乱套用的“万能”捷径。软件工程中,真正的解决问题的能力是无可替代的。
然而,事实是:如果在合适的情境、出于正确的目的使用设计模式,它们可以极其有用。策略性地使用它们,程序员可以避免重复造轮子,而是直接采用已经被他人提炼好的方法,从而显著提升效率。它们还能提供一种通用的语言,帮助在团队中讨论或管理代码时,对重复出现的问题和解决方案进行概念化。
话虽如此,一个重要的前提是开发者必须理解每个模式背后的如何做以及为何如此。
最重要的设计模式
Singleton(单例)
创建一个类的对象本身很简单——但我们如何确保整个程序中只会生成唯一的一个对象呢?答案是将构造函数设为 private(私有),并将该类定义为单例。这样,只有该类的成员能够访问私有构造函数,其他代码无法实例化。
重要考虑点: 可以通过将构造函数设为 protected(受保护)而不是 private 来对单例进行子类化。在某些情况下这可能是合适的。一种常见做法是为子类的单例创建一个注册表,getInstance 方法可以接受参数或读取环境变量,以返回所需的单例。注册表维护一个从字符串名称到单例对象的映射,按需访问。