发布我的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:
|
2. App从ObjectFactory得到BusinessInterface的实现对象
1)先继承一个ObjectFactory:
|
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程序中调用:
|
以后如果要添加新的XXXObject的话, 只需新建一个XXXConfig类(实现 IObjectFactoryConfig接口), 在此类中向ObjectFactory注册对象创建器, 然后把编译后的.class文件拷贝到C:\abc\cde\lib\ofconfig\myapp.MyFactory\下就可以了.
文件
http://www.jdon.com/jive/upload/windfromskyaL4842B076.zip