用了一周时间把JBPM这本书看完了,但时间加起来也没多久,中间一直夹杂着别的事。
在看的过程中,一直看到这句话:有志做引擎名架构师的,那么JBPM4是你很好的一个研究对象。于是我很听话的去看了源码,想研究一下它的架构,结果发现水好深。下面是我自己看源码画的一个架构图。当然,我列出的只是一个稍微简化的图:
有了这张图,你对JBPM的使用会事半功倍。现在,我主要把外观提取出来看一下。
稍微入下门的童鞋就知道,使用JBPM先要创建Configuration,然后由Configuration得到ProcessEngine。那么现在你就可以通过ProcessEngine获得到各种服务了。你不需要知道一共有多少服务,只要打上ProcessEngine然后点一下,它提供了什么服务你就可以一览无余。
外观模式的一个功能不就是对接口的整合么,那么现在来看一下ProcessEngine的这段代码吧:
public ExecutionService getExecutionService() {
return get(ExecutionService.class);
}
public HistoryService getHistoryService() {
return get(HistoryService.class);
}
public ManagementService getManagementService() {
return get(ManagementService.class);
}
public TaskService getTaskService() {
return get(TaskService.class);
}
public IdentityService getIdentityService() {
return get(IdentityService.class);
}
public RepositoryService getRepositoryService() {
return get(RepositoryService.class);
}
有人曾经怀疑过这样写,认为这样写没有什么意义,认为这样写是把*Service架空了。但是正是因为JBPM4采取了这样的写法,我们才不用像JBPM3中那样,什么接口都需要自己有一个大概映像。
有了这个好处,那么对于这种写法的对与错就不需要我再去多说什么了,只要你同时用一下JBPM3和JBPM4就能够体会到这种写法给别人带来的便利了。
上面的图中我一共画出了3种设计模式,但JBPM4中肯定不止这3种,例如工厂等被人们常常挂在口边的设计模式一般也没有人提。
现在再提一下我对JBPM的学习:
JBPM的学习最重要的是JPDL的学习,对于JPDL的学习,宏哥在讲的时候,把它当作一门语言来讲,然后分别从变量、3大结构来讲。这样的讲解不只是在给我们讲知识,而是在讲述一种学习方法。这种学习方法能够让我们用最短的时间完成更多的学习。
对于JBPM能够干什么现在已经差不多清楚了,需要的只是一个项目的磨练以及用户变态的需求。