我最好用一个例子来解释这个问题。我有一个可用于访问数据的接口模型。Model 可以有不同的实现,可以表示各种格式的数据,比如 XMl、txt 格式等。Model不关心格式。可以说一种这样的实现是myxmlModel。
现在我想强制myxmlModel和Model的所有其他实现遵循单例模式。通常的方法是使myxmlModels构造函数私有并提供静态工厂方法来返回 myModel 类的实例。但问题是接口不能有静态方法定义结果我无法对Model的所有实现强制执行特定的 Factory 方法定义。因此,一种实现可能以提供getObject()结束,而另一种实现可能已经获得NewModel()。.
一种解决方法是允许包访问myxmlModel 的构造函数并创建一个 Factory 类,该类创建myxmlModel对象并将其缓存以供进一步使用。
我想知道是否有更好的方法来实现相同的功能。