我想实现一种根据用户配置加载(和管理)对象的类(也可能是Manager Design Pattern)(多对象中的每个对象的关键字是配置记录)。如果检测到配置变化,则对这些对象进行处理并重新创建(即重新加载)。受管实例的同步
其他对象(管理对象外部)与这些“受管理”对象进行交互/通信。
例如,
ManagerA管理配置的ClassA实例的实例。 ObjectB通过ManagerA检索ClassA的实例,并启动 与实例进行交互。
的问题是,对象B和ClassA的的管理实例之间的相互作用可以潜在地在另一个线程上比在其上ManagerA处置ClassA的实例,并创建ClassA的的新实例(用于新改变的配置) 。即托管实例可以像与被管理对象进行交互一样(或刚好)与托管对象进行交互。
我的问题是如何通过外部对象来同步实例管理和交互与这些托管实例?
简单的解决方案:不要处置()他们。为什么这是需要呢? –
托管实例实际上使用它们的一次性实例,因此它们需要处理,否则系统资源将泄漏或锁定,直到GC收集对象。例如。作为其功能的一部分,实例被配置为与串行端口进行交互。我不应该解释为什么需要处理...... –
从您的链接页面:管理器控制对管理的所有访问,所以您不应该出现这种情况。和/或这是错误的模式。 –