shark和jbpm配置文件處理方式比較

作者:楊洪波

shark和jbpm配置文件處理方式比較

1.都使用了單例模式
我想這個是最基本的,一般的程序員寫解析程序都會這樣使用;要說明的是,AgileFlow
除了使用單例模式,還實現了配置文件的動態裝載,如果用戶修改了配置文件,它能夠在
運行中動態的獲取這些變化.
使用jbpm時,第一句話就要使用該模式:JbpmServiceFactory.getInstance()....

2.都實現了缺省配置和定製配置
Shark中,缺省配置放在一個深層次的目錄中,定製配置放在config目錄,兩個配置
文件的內容差不多;
jbpm中,缺省配置放在代碼中實現,如下:
propertyClassNames = new HashMap();
propertyClassNames.put( "default", "org.jbpm.impl.DefaultServiceFactory" );
abbreviatedClassNames.put( "jbpm.service.factory", propertyClassNames );
定製配置放在config目錄中,爲jbpm.properties
比較而言,jbpm的實現方式要好,理由如下:
1)缺省配置容易找到
2)定製配置很簡單,默認是沒有配置的,比shark的要清爽很多

3.都實現了用一個單例實現多個單例
我在Shark學習系列的文章中討論過這個功能,jbpm是在JbpmConfiguration.java中實現的:
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 );
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章