作者:楊洪波
作者:楊洪波
shark和jbpm配置文件處理方式比較
1.都使用了單例模式
我想這個(gè)是最基本的,一般的程序員寫解析程序都會(huì)這樣使用;要說明的是,AgileFlow
除了使用單例模式,還實(shí)現(xiàn)了配置文件的動(dòng)態(tài)裝載,如果用戶修改了配置文件,它能夠在
運(yùn)行中動(dòng)態(tài)的獲取這些變化.
使用jbpm時(shí),第一句話就要使用該模式:JbpmServiceFactory.getInstance()....
2.都實(shí)現(xiàn)了缺省配置和定制配置
Shark中,缺省配置放在一個(gè)深層次的目錄中,定制配置放在config目錄,兩個(gè)配置
文件的內(nèi)容差不多;
jbpm中,缺省配置放在代碼中實(shí)現(xiàn),如下:
propertyClassNames = new HashMap();
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
定制配置放在config目錄中,為jbpm.properties
比較而言,jbpm的實(shí)現(xiàn)方式要好,理由如下:
1)缺省配置容易找到
2)定制配置很簡(jiǎn)單,默認(rèn)是沒有配置的,比shark的要清爽很多
3.都實(shí)現(xiàn)了用一個(gè)單例實(shí)現(xiàn)多個(gè)單例
我在Shark學(xué)習(xí)系列的文章中討論過這個(gè)功能,jbpm是在JbpmConfiguration.java中實(shí)現(xiàn)的:
private void instantiateConfiguredObjects() {
// instantiate configured objects
this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );
this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );
this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );
}
1.都使用了單例模式
我想這個(gè)是最基本的,一般的程序員寫解析程序都會(huì)這樣使用;要說明的是,AgileFlow
除了使用單例模式,還實(shí)現(xiàn)了配置文件的動(dòng)態(tài)裝載,如果用戶修改了配置文件,它能夠在
運(yùn)行中動(dòng)態(tài)的獲取這些變化.
使用jbpm時(shí),第一句話就要使用該模式:JbpmServiceFactory.getInstance()....
2.都實(shí)現(xiàn)了缺省配置和定制配置
Shark中,缺省配置放在一個(gè)深層次的目錄中,定制配置放在config目錄,兩個(gè)配置
文件的內(nèi)容差不多;
jbpm中,缺省配置放在代碼中實(shí)現(xiàn),如下:
propertyClassNames = new HashMap();
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
定制配置放在config目錄中,為jbpm.properties
比較而言,jbpm的實(shí)現(xiàn)方式要好,理由如下:
1)缺省配置容易找到
2)定制配置很簡(jiǎn)單,默認(rèn)是沒有配置的,比shark的要清爽很多
3.都實(shí)現(xiàn)了用一個(gè)單例實(shí)現(xiàn)多個(gè)單例
我在Shark學(xué)習(xí)系列的文章中討論過這個(gè)功能,jbpm是在JbpmConfiguration.java中實(shí)現(xiàn)的:
private void instantiateConfiguredObjects() {
// instantiate configured objects
this.fileMgr = (FileMgr) instantiate( "jbpm.file.mgr", FileMgr.class );
this.idGenerator = (IdGenerator) instantiate( "jbpm.id.generator", IdGenerator.class );
this.serviceFactory = (ServiceFactory) instantiate( "jbpm.service.factory", ServiceFactory.class );
}