java – 用于从多个位置正确退出正在运行的程序的设计模式
发布时间:2020-12-15 08:42:10 所属栏目:Java 来源:网络整理
导读:我有一个用 java编写的系统,我有多个不同的对象,每个对象都有不同的资源在使用.有些与activeMQ队列有连接,有些有网络连接,有些有开放文件.有些还包含正在运行的线程 当在此系统中的任何位置发生致命错误时,我需要将其关闭并正确关闭所有资源并停止所有正在运
我有一个用
java编写的系统,我有多个不同的对象,每个对象都有不同的资源在使用.有些与activeMQ队列有连接,有些有网络连接,有些有开放文件.有些还包含正在运行的线程
当在此系统中的任何位置发生致命错误时,我需要将其关闭并正确关闭所有资源并停止所有正在运行的线程. 当导致错误的对象需要启动关闭过程时,我的问题就出现了.此对象不知道具有打开文件的其他对象等.所以它基本上可以释放所有资源,就是这样. 我正在寻找一种干净的方法来实现这一点,而不会弄乱并在系统周围传递多个对象引用. 任何见解都表示赞赏.谢谢. 解决方法
创建一个中心生命周期对象,应用程序中的所有其他对象都可以引用该对象,并且该对象又引用所有这些其他对象.另外,这些对象中的每一个都应该实现一个通用接口,例如
public interface ShutdownListener { void onShutdown(); } 当其中一个对象需要开始有序关闭时,它可以调用lifecycle.shutdown(),它可以依次调用object.onShutdown()对其注册的所有对象,以便为这些对象提供关闭它们的机会.资源. 这基本上是the Observer pattern. 如果你使用一个依赖注入容器,比如Spring,这种类型的东西是内置的 – 你的bean可以扩展某个接口,以便在容器关闭时得到通知. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |