Author:赵志乾
Date:2024-07-28
Declaration:All Right Reserved!!!
1. 组件设计
业务逻辑组件包括两部分:接口和实现,其中接口用于定义组件必须实现的方法,其可以让控制器面向接口编程,从而降低耦合性;而实现则基于DAO组件完成业务逻辑;
系统实现所有后台逻辑后,向外提供一个统一的Facade接口,而前台层仅依赖于该Facade接口,实现前台层与业务层的解耦;
2. 实体设计
业务逻辑层的实体提供对业务数据以及状态的访问,其支持序列化以便于跨网络传输或持久化。实体不直接访问数据库,全部的数据库访问都是由相关联的数据访问组件提供的。业务逻辑层的实体也不启用任何类型的事务处理,事务处理由业务过程来启动;
3. 工作流设计
工作流:业务流程的全部或部分自动化,并在此过程中,文档、信息、任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标;其参考模型如下:
- 过程定义的导入导出接口:通过转换格式和API调用,完成过程定义信息转换;
- 客户端应用程序接口:通过该接口,工作流机可以与任务表处理器交互,代表用户资源来组织任务。之后由任务表处理器负责从任务表中选择和推进任务项。
- 应用程序调用接口:允许工作流机直接激活一个应用工具来执行某个活动;
- 管理与监视接口:提供用户管理、角色管理、资源管理等功能;
- 协作接口:定义相关标准,以使不同开发商的工作流系统产品相互间能够进行无缝的任务项传递;
使用工作流的思想组织业务逻辑的优势在于:将应用逻辑与过程逻辑分离,在不修改具体功能的情况下,通过修改过程模型改变系统功能,完成对生产经营部分过程或全部过程的集成管理,有效地将人、信息和应用工具合理组织起来,发挥最大的效能;
4. 架构设计
业务逻辑层采用容器方式来降低该层与相邻层间的耦合,例如:表示层只需将业务参数传递给容器,有效防止业务层代码渗透到表示层;在业务容器中,业务逻辑按照Domain Model-Service-Control思想实现,该思想将服务于服务的控制进行隔离,使程序具备高度的可重用性和灵活性;
- Domain Model:领域层业务对象,仅包含业务相关属性;
- Service:功能单元,其通过定义良好的接口或契约与其他部分联系起来,达到Service间的松耦合的效果;
- Control:Service间的纽带,实现不同Service间的切换,以提高Service实现的灵活性和重用性;
Domain Model、Service、Control之间的互动关系:
- Service的运行依赖于Domain Model的状态,且Service会根据业务规则改变Domain Model的状态;
- Control根据Domain Model的状态和相关参数决定Service之间的执行顺序以及相互关系;