发布我的framework

模仿spring, 不知道模仿得象不像.

框架
ObjectFactory.jar

业务
BusinessInterface.jar
BusinessImpl.jar

应用App
目标:让App只与BusinessInterface相关, 而与BusinessImpl无关.
在App的代码中通过
IBusiness businessObj =
(IBusiness)objectFactory.getObject(“businessObjId”);
来代替
Ibusiness businessObj = new BusinessImpl();
从而解除App和BusinessImpl的关系.

配置AppConfig
由一系列class文件组成(不是xml文件),
把businessObjId与BusinessImpl对应起来,
这些类放在特定的目录下, 由objectfactory加载

-------------------------------------------------------------

依赖关系

1.
App --> ObjectFactory.jar
App --> BusinessInterface.jar

2.
AppConfig --> ObjectFactory.jar
AppConfig --> BusinessImpl.jar

-------------------------------------------------------------

各个模块的关系

1. AppConfig向ObjectFactory注册对象创建器, 用于创建BusinessImpl对象.
配置类的包为缺省包.

新建一个配置类A1_PersonConfig implements IobjectFactoryConfig:


public class A1_PersonConfig implements IObjectFactoryConfig {
public void load(final ObjectFactory objectFactory){
try {
objectFactory.addSingletonObjectCreator(
"person1",
new IObjectCreator(){
public Object create() {
Person p = new Person();
return p;
}
}
);

} catch (DuplicateObjectException e) {
e.printStackTrace();
}
}
}

2. App从ObjectFactory得到BusinessInterface的实现对象

1)先继承一个ObjectFactory:


package myapp;
public class MyFactory extends ObjectFactory {
static ObjectFactory fac = new MyFactory();
public static ObjectFactory getInstance(){
return fac;
}
public static Object getObj(String objId) {
return getInstance().getObject(objId);
}

public MyFactory(){
super();
}

public MyFactory(File f){
super(f);
}
}

2)
在ObjectFactory.jar文件所在的目录中建立一个目录ofconfig, 并在ofconfig中建立目录myapp.MyFactory(目录名字就是MyFactory的完整类名),
把配置类A1_PersonConfig.class拷贝到myapp.MyFactory之下.

假设ObjectFactory.jar所在的位置是
C:\abc\cde\lib\ObjectFactory.jar
那么ofconfig的位置就是这样:
C:\abc\cde\lib\ofconfig
.class文件的位置就是这样:
C:\abc\cde\lib\ofconfig\myapp.MyFactory\A1_PersonConfig.class
这个myapp.MyFactory目录下可能会有很多这样的配置类, ObjectFactory按字母顺序加载这些类

3)App程序中调用:


IPerson person1 =
(IPerson)MyFactory.getObj("person1");

以后如果要添加新的XXXObject的话, 只需新建一个XXXConfig类(实现 IObjectFactoryConfig接口), 在此类中向ObjectFactory注册对象创建器, 然后把编译后的.class文件拷贝到C:\abc\cde\lib\ofconfig\myapp.MyFactory\下就可以了.

文件
http://www.jdon.com/jive/upload/windfromskyaL4842B076.zip


非常不错,支持 继续努力啊