67,513
社区成员
发帖
与我相关
我的任务
分享
public interface EntityInterface{
public void doSomething();
}
package entity.a;
import entity.EntityInterface;
public class X1 implements EntityInterface{
public void doSomething() {
// TODO Auto-generated method stub
System.out.println("a --> X1.doSomething...");
}
}
这样的话,再要添加的话只要 添加 相应的类就可以了,其他的不用修改
package entity;
public class PUB {
private String packageCofig = "a";//defalut a 假设此值是从配置文件读取
public EntityInterface start(String entityName) throws Exception{
String classAllName = "entity."+ packageCofig +"." +entityName;
Class cl = Class.forName(classAllName);
Object obj = cl.newInstance();
return (EntityInterface)obj;
}
public static void main(String[] args) throws Exception{
PUB pub = new PUB();
pub.start("X1").doSomething();
pub.start("X2").doSomething();
pub.setPackageCofig("b");//修改配置文件
pub.start("X1").doSomething();
pub.start("X2").doSomething();
/*
a --> X1.doSomething...
a --> X2.doSomething...
b --> X1.doSomething...
b --> X2.doSomething...
*/
}
public String getPackageCofig() {
return packageCofig;
}
public void setPackageCofig(String packageCofig) {
this.packageCofig = packageCofig;
}
}
//觉得A B C三个类没必要写,至少这里是的
PUB pub = new PUB
pub.X1.Y(); //调用的时候 把a、b、c包这层隐藏掉
//或者
pub.xxx("X1").Y(); //其中X1就是a、b、c包下的一个类,Y()就是X1的方法