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