假设我有一个名为 WebsterDictionary
的简单类,它有一个可以接受单词并返回其定义的函数。也许还有另一个函数可以接受定义并返回一个单词。许多客户一直在使用该类。
为了方便查找,该类包含一个成员变量,它是一个内存中的字典,用于存储单词及其关联的定义。假设字典一旦初始化就永远不会改变——它是常量,不会因实例而变化。
这是静态类的良好候选者吗?我一直在读静态类应该是无状态的...但是这个类有状态(内存中的字典),对吗?
编辑:另外,如果这确实成为静态类,那么我什么时候初始化字典,因为不再有构造函数?每次调用静态方法之一时,我是否都会检查对字典的引用是否为空?
谢谢。
最佳答案
当功能不需要可替换时(例如用于测试),静态类适用。如果您可能想使用 stub 或模拟,您应该创建一个适当的接口(interface),然后使用单例实现它。
关于oop - 当状态不可变时,静态类是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/659148/