通过类加载器动态加载类,方便业务扩充

前段时间在考虑自定义桌面的问题,自定义桌面意味着每个用户的桌面可能都不一样,因此如何加载用户界面存在代码,来提高性能能?以及如何提供良好的扩展性呢?

考虑了一下,采用java的ClassLoader来实现,比较好。
实现如下:

--------------------通用接口,其他的处理类都implements这个接口---------------
package com.ray.qkm.client
  public interface IAction {
     public String process();
}

-----------------------------实现类1-------------------------
package com.ray.qkm.client
public class Test1 implements IAction {
    public String process() {
        return "hello world";
    }
}

-----------------------------实现类2-------------------------
package com.ray.qkm.client
public class Test2 implements IAction {


    public String process() {
        return "hello world";
    }
}

-------------------------动态加载----------------------------
package com.ray.qkm.client

import java.util.ArrayList;
import java.util.List;

public class TestClassLoader {

/**
* @param args
* @throws ClassNotFoundException
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        //这部分的集合数据可以通过其他方式加载进来
        List cc = new ArrayList();
        cc.add("com.ray.qkm.client.Test1");
        cc.add("com.ray.qkm.client.Test2");
        cc.add("com.ray.qkm.client.Test3");
        ClassLoader loader = ClassLoader.getSystemClassLoader();
        for (int i=0; i<cc.size(); i++) {
            Class c = loader.loadClass(cc.get(i).toString());
            IAction tt = (IAction)c.newInstance();
        System.out.println(tt.process());
    }

}

}

-----------------------------------------------------------------------------
虽然很简单,但是很实用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值