【问题标题】:A singleton class creation with factory method使用工厂方法创建单例类
【发布时间】:2013-03-19 11:38:12
【问题描述】:

我的单例类实现了一个接口,将来我可以期待许多具体的实现出来。 我正在考虑通过工厂方法创建这个类的一个实例。工厂方法可能被重载。 我的问题是这个想法是好是坏?

【问题讨论】:

  • 这个问题是主观的。您是否有特定的问题/场景?
  • @DeepakBala 我正在为我的系统编写一个持久性机制的抽象。比如说 XMLPersistence。我想将这个类的单个引用传递给每个调用子系统。我也知道将来我可能会有移动到这个类的另一个实现,但单个实例的东西仍然保持不变

标签: java oop design-patterns singleton


【解决方案1】:

根据您更新的评论,您可以做到这一点。工厂方法根据重载的参数或参数中的枚举/整数值输出持久性类的单例实现。有许多框架使用这种模式,比如为您提供与基于不同协议的服务器通信的客户端实例。

MyFactory.pbClient("host", port);
MyFactory.httpClient("host", port);

【讨论】:

    【解决方案2】:

    如果从您的工厂方法返回的实例是单例,则无关紧要。这是一种实施选择——根据您的需要做正确的事情。

    另外,如果您的方法签名返回一个接口,那么从技术上讲,它是一个abstract factory 方法,而不是factory 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多