在Java语言中使用管理MBean时,它的接口是通过MBean接口公开的。但是如果有各种参数要通过MBean公开的话。而且随着系统的不同版本,可能会在MBean中增加或减少许多新的参数,管理此类系统变得非常繁琐。
有没有什么设计模式可以用来避免这样的问题?
发布于 2011-12-02 05:27:53
如果你想让事情动态发生,你必须有一些逻辑规则来动态确定托管类的哪些字段\方法应该公开,哪些不应该。
现在,您可以实现一个Dynamic MBean (请参阅一个很好的说明性示例here),并使用反射来收集托管类的最新信息。然后,应该根据前面提到的规则过滤反射的类信息(希望所有其他程序员都遵循它!我不会指望它)。
好的,这不是一个设计模式。我认为真正推荐的模式是,添加某些属性的程序员应该花一些时间来思考它是否值得公开,以及它是否可以安全地公开。在删除属性时,应该考虑它是否不会破坏任何现有的客户端代码。
发布于 2011-12-02 05:02:06
是的,使用接口。确保MBean的提供者和使用者都使用smae Java接口。
对于提供程序部分,请看一下spring如何从接口组装MBean。
在消费者端,编写一个接受接口并将其转换为MBean访问操作的MBean客户端并不是很困难。
https://stackoverflow.com/questions/8346987
复制相似问题