1

在 Java 中使用 Management Beans 时,它的接口是通过 MBean 接口公开的。但是如果有各种参数要通过MBean暴露出来。而且随着系统版本的不同,可能会在MBean中增加或减少很多新的参数,那么管理这样的系统就变得非常繁琐。

是否有任何设计模式可用于避免此类问题?

4

2 回答 2

1

是的,使用接口。确保 MBean 的提供者和消费者使用 smae Java 接口。

对于提供者部分,看看spring如何从一个接口组装一个 MBean。

在消费者方面,编写一个接收接口并将其转换为 MBean 访问操作的 MBean 客户端并不是很困难。

于 2011-12-01T21:02:05.790 回答
1

如果您希望事情动态发生,您必须有一些逻辑规则来动态确定托管类的哪些字段\方法应该公开,哪些不应该公开。

现在,您可能能够实现一个动态 MBean (请参阅此处的一个很好的解释性示例)并使用反射来收集托管类的最新信息。然后应该根据前面提到的规则过滤反射的类信息(希望所有其他程序员都遵循它!我不会指望它)。

好的,所以这不是设计模式。我认为真正推荐的模式是添加某些属性的程序员应该花几分钟时间推理它是否值得暴露以及暴露是否安全。当删除一个属性时,应该考虑它是否不会破坏任何现有的客户端代码。

于 2011-12-01T21:27:52.580 回答