enoeht的Java源码系列(2)--综合工厂

来源:互联网 发布:手机免费代理软件 编辑:程序博客网 时间:2024/06/10 15:40

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

 

原创粉丝点击