【问题标题】:Design pattern with MBeans in JavaJava 中的 MBean 设计模式
【发布时间】:2011-12-01 19:17:02
【问题描述】:

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

有没有什么设计模式可以用来避免此类问题?

【问题讨论】:

    标签: java mbeans


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2022-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多