package org.kyle.net.svr.sample;
public class IntegrationFactory
{
public IntegrationFactory()
{
}
public static IListener createListener(GenProfile genCfg)
{
IListener iListener = null;
try {
//根据配置文件中设置的类名创建相应的实例
iListener = (IListener) instantiateIt(genCfg.getListenerImpl());
}
catch (Exception e) {
Debug.info("Listener class not found!");
//如果指定的类不存在,使用默认的类创建实例,同时由于在程序中引用的都是接口,因此在此处提供一个默认类的引用,编译时只需编译mainclass,不需要单独再编译默认类了
iListener = new SampleListenerImpl();
}
return iListener;
}
//根据类的名字得到类的实例
public static Object instantiateIt(String clsName)
throws ClassNotFoundException,
ClassCastException,
InstantiationException,
IllegalAccessException
{
Class cls = Class.forName(clsName);
return cls.newInstance();
}
}
在配置文件中加上:Listener = org.kyle.net.svr.sample.SampleListenerImpl