Posted on 2005-11-14 17:01
canonical 阅读(291)
评论(0) 编辑 收藏 所属分类:
软件开发
JMX在技术上的需求可以说是将管理功能从功能性接口中分离出来。
例如一个缓存接口
interface ICache{
Object get(Object key);
void put(Object key, Object value);
}
但一个具体实现类可能有很多参数可以调整,如缓存的最大尺寸等。这些可配置参数一般与具体实现紧密相关,即与实例相关,而不直接涉及到所要实现的功能。例如实现类可以具有setMaxSize()和getMaxSize()方法。
如
果这些配置方法在功能接口中定义,就会造成功能接口的臃肿和不必要的与实现方法之间的依赖。如果直接调用实现类的方法,只能使用reflection,
但是java class作为元数据所承载的信息量有限,需要外部定义一个规范来补充信息。JMX就是这样的一种规范。