2011-12-01 66 views
1

在Java中使用Management Bean时,其接口通过MBean接口公开。但是,如果有各种参数要通过MBean暴露出来。而对于不同版本的系统,可能会从MBean中添加或减少许多新参数,然后管理此类系统变得非常繁琐。使用Java中的MBeans设计模式

有什么设计模式可以用来避免这些问题吗?

回答

1

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

现在,您可能可以执行Dynamic MBean(请参阅一个很好的解释性示例here)并使用反射来收集托管类的最新信息。反映出来的班级信息应该根据前面提到的规则进行筛选(希望所有其他程序员都遵循它!我不会指望它)。

好的,所以这不是一种设计模式。我认为真实推荐模式是,程序员增加某些属性应该采取片刻的推理是否值得揭露和是否安全暴露。而当移除一个属性时,应该考虑它是否不会破坏任何现存的客户端代码。

1

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

对于供应商部分,看看spring如何从接口组装MBean。

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