【发布时间】:2009-07-30 12:30:13
【问题描述】:
我最好用一个例子来解释这个问题。 我有一个可用于访问数据的接口模型。 Model 可以有不同的实现,可以表示各种格式的数据,例如 XMl、txt 格式等。Model 不关心格式。 让我们说一个这样的实现是 myxmlModel。
现在我想强制 myxmlModel 和 Model 的所有其他实现遵循 单例模式。通常的方法是使 myxmlModels 构造函数私有并提供静态工厂方法来返回 myModel 类的实例。但问题是 接口 不能有静态方法定义,结果我无法强制执行特定的工厂方法定义模型的所有实现。因此,一种实现可能以提供 getObject() 结束,而另一种可能具有 getNewModel()..
一种解决方法是允许包访问 myxmlModel 的 构造函数并创建一个工厂类,该类创建 myxmlModel 对象并将其缓存以供进一步使用。
我想知道是否有更好的方法来实现相同的功能。
【问题讨论】:
标签: java interface singleton design-patterns factory