Java 使用工厂方法创建单例类
我的singleton类实现了一个接口,在将来我可以期望得到许多具体的实现。 我正在考虑通过工厂方法创建这个类的一个实例。工厂方法可能被重载。Java 使用工厂方法创建单例类,java,oop,design-patterns,singleton,Java,Oop,Design Patterns,Singleton,我的singleton类实现了一个接口,在将来我可以期望得到许多具体的实现。 我正在考虑通过工厂方法创建这个类的一个实例。工厂方法可能被重载。 我的问题是这个主意是好是坏?根据你最新的评论,你肯定能做到。工厂方法根据重载的参数或参数中的枚举/整数值提供持久性类的单例实现。有很多框架都使用这种模式,比如说给你一个基于不同协议与服务器通信的客户端实例 MyFactory.pbClient("host", port); MyFactory.httpClient("host", port); 根据你的
我的问题是这个主意是好是坏?根据你最新的评论,你肯定能做到。工厂方法根据重载的参数或参数中的枚举/整数值提供持久性类的单例实现。有很多框架都使用这种模式,比如说给你一个基于不同协议与服务器通信的客户端实例
MyFactory.pbClient("host", port);
MyFactory.httpClient("host", port);
根据你的最新评论,你一定能做到。工厂方法根据重载的参数或参数中的枚举/整数值提供持久性类的单例实现。有很多框架都使用这种模式,比如说给你一个基于不同协议与服务器通信的客户端实例
MyFactory.pbClient("host", port);
MyFactory.httpClient("host", port);
如果从factory方法返回的实例是单例,则这与此无关。这是一种实现选择——做适合您需要的事情
另外,如果您的方法签名返回一个接口,那么从技术上讲,它是一个方法,而不是一个方法。如果从您的工厂方法返回的实例是一个单例,则这与此无关。这是一种实现选择——做适合您需要的事情
另外,如果您的方法签名返回一个接口,那么从技术上讲,它是一个方法,而不是一个方法。这个问题是主观的。你有什么特别的问题/场景吗?@DeepakBala我正在为我的系统编写一个关于持久性机制的抽象。比如说xmlspersistence。我想把这个类的一个引用传递给每个调用子系统。我也知道,将来我可能不得不转移到这个类的另一个实现,但还是单实例的事情这个问题是主观的。你有什么特别的问题/场景吗?@DeepakBala我正在为我的系统编写一个关于持久性机制的抽象。比如说xmlspersistence。我想把这个类的一个引用传递给每个调用子系统。我也知道,将来我可能不得不转移到这个类的另一个实现,但还是单实例的事情保持不变