Posted on 2005-11-14 17:01
canonical 閱讀(296)
評論(0) 編輯 收藏 所屬分類:
軟件開發(fā)
JMX在技術(shù)上的需求可以說是將管理功能從功能性接口中分離出來。
例如一個緩存接口
interface ICache{
Object get(Object key);
void put(Object key, Object value);
}
但一個具體實現(xiàn)類可能有很多參數(shù)可以調(diào)整,如緩存的最大尺寸等。這些可配置參數(shù)一般與具體實現(xiàn)緊密相關(guān),即與實例相關(guān),而不直接涉及到所要實現(xiàn)的功能。例如實現(xiàn)類可以具有setMaxSize()和getMaxSize()方法。
如
果這些配置方法在功能接口中定義,就會造成功能接口的臃腫和不必要的與實現(xiàn)方法之間的依賴。如果直接調(diào)用實現(xiàn)類的方法,只能使用reflection,
但是java class作為元數(shù)據(jù)所承載的信息量有限,需要外部定義一個規(guī)范來補充信息。JMX就是這樣的一種規(guī)范。