2011-12-01 73 views
1

在Java中使用Management Bean時,其接口通過MBean接口公開。但是,如果有各種參數要通過MBean暴露出來。而對於不同版本的系統,可能會從MBean中添加或減少許多新參數,然後管理此類系統變得非常繁瑣。使用Java中的MBeans設計模式

有什麼設計模式可以用來避免這些問題嗎?

回答

1

如果你想讓事情動態發生,你必須有一些邏輯規則來動態確定託管類的哪些字段\方法應該被公開,哪些不應該。

現在,您可能可以執行Dynamic MBean(請參閱一個很好的解釋性示例here)並使用反射來收集託管類的最新信息。反映出來的班級信息應該根據前面提到的規則進行篩選(希望所有其他程序員都遵循它!我不會指望它)。

好的,所以這不是一種設計模式。我認爲真實推薦模式是,程序員增加某些屬性應該採取片刻的推理是否值得揭露和是否安全暴露。而當移除一個屬性時,應該考慮它是否不會破壞任何現存的客戶端代碼。

1

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

對於供應商部分,看看spring如何從接口組裝MBean。

在消費者方面,編寫一個接口並將其轉換爲MBean訪問操作的MBean客戶端並不困難。