通过使用单例,只能创建一个实例。我们是否需要销毁该实例?
我有一个单例DBManager,它管理JDBC连接和查询操作。通过调用其静态newInstance方法,可以获取它的实例,然后进行一些查询。最后,我想关闭数据库连接,并调用另一个静态方法关闭以关闭JDBC连接。
现在,连接已关闭,而DBManager实例仍处于活动状态,但没有用。我是否需要通过例如将其分配为null来销毁它?否则以后可能会错误地引用它。
如果我为该实例分配了null,然后再次调用newInstance方法,是否会得到另一个新的不同实例?
我不会被“单身”的语义所困扰,您的要求是DBManager
任何时候最多存在一个实例。一旦该实例变得无用,您可以销毁它,以便按需创建一个新实例,或者定义您的newInstance
方法(建议将其重命名为getInstance
)以引发异常(可能是IllegalStateException
),如果该异常在单例之后被调用变得毫无用处。
如果要在无用的情况下销毁它,我建议您在单例类中自动完成此操作,而无需外部帮助。您还应该考虑完全隐藏单例DBManager
并改为实现委托模式。这样可以避免客户端保留对过时DBManager
实例的引用的问题。然后,您可以使委托对象成为常规单例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句