GoF四人组一共介绍了23种面向对象的设置模式,为每一种特定的实现取了一个名字,根据模式的应用目的不同,将他们分为3类,创建型、结构性和行为型。
面向对象设计三原则:
优先使用组合
针对接口编程
为变化而设计
设计模式不是万能的,熟悉了这些模式,灵活运用它,并且不局限于设计模式,构架出适合自己的设计才是最重要的。
在工作流系统的开发中,后台的类是纯面向对象的方式实现的,因此少不了设计模式的运用:
单例模式:
读取数据库配置文件 fcconfig.xml
读取工作流相关的配置文件 fcworkflow.xml
读用户系统的配置文件 fcuser.xml
这种读取配置文件,返回多个属性值的,用单例模式,确保系统中只有一个实例在运行。
获取表的最大id号,用的是静态方法,因为只需要获取一个值。
静态方法和单例模式有区别:静态方法在系统运行后,就已经运行了,是一个方法,只有一个返回值。
单例模式是在需要获取这个流程实例的时候,才初始化这个类,返回的是一个类的实例。
工厂模式:
配置多数据库的支持;
配置流程的多种存储方式;
配置用户系统的多种实现方式
....
很多实现都能看到工厂模式的影子,大部分的实现都是采用 工厂模式+可配置的参数 来实现的。
外观模式,代理模式:
外观模式是在系统的封装好了功能前面再加一道入口门。在eworkflow中用户系统的对外提供统一的入口,有点类似外观模式。
代理模式:
资源的延迟访问。
为对象提供一个代理来控制对该对象的访问。
适配器模式:
在流程的表达式分析中,有用到适配器模式,系统提供了一套分析表达式的方法。也可以切换成其它的(用户自定义的)表达式分析器类。
装饰器模式:
比较常见的是在web请求后,加上拦截器或者是过滤器。
复合模式:
有多层次嵌套的上下级关系的节点,在实现的时候,采用了复合模式来达到一个递归的调用。就是在父层次的抽象类中,定义了节点有共性的属性。在子层次的类中,用一个集合来记录父层次类的实例个数,再通过遍历这个集合来达到递归出所有嵌套子节点的个数。
命令模式:
web请求的时候,所有的页面请求方式用命令模式来封装,达到统一的调用。
策略模式:
所有的节点的前置后置函数,都实现一个接口,接口提供一个方法,这个方法流程引擎中会调用。前置后置函数可以是一些业务函数。
所有的条件判断函数,也都是实现了一个统一的接口,接口提供一个判断方法,这个方法在流程引擎中会调用。 只要实现这个接口,用户可以自己写业务规则。
模版方法:这种在很多父层次的抽象类中,经常有实现。
观察者模式:在将自定义表单(eform)和eworkflow工作流的集成中,有类似使用观察者模式。在表单业务数据的提交后,产生事件,通知到工作流系统中,工作流系统接到通知后,将执行流程的动作提交,达到流程递进。
....
可能上面的归纳不是很准确,但是对接口编程,为变化而设计 这种思想贯穿了整个流程开发。还是那句话,设计模式不是万能的,能提炼出共性,符合使用设计模式的,使得复杂的处理更加简单了,就可以使用。
<script type="text/javascript"></script>
分享到:
相关推荐
Java设计模式在工作流管理系统中的应用研究涉及到软件设计的核心原则,即如何通过设计模式提高系统的灵活性、可维护性和可扩展性。设计模式是解决软件设计中常见问题的标准方法,它们来源于大量的实践经验,经过抽象...
- **定义**:工作流模式是指在工作流模型中反复出现的特定连接关系或结构模式。 - **作用**:通过对这些模式的研究和总结,可以更有效地设计和优化工作流过程。 ### 分布式工作流技术 随着信息技术的发展,尤其是...
基于关系数据库的工作流系统设计与实现,是信息技术领域的一个...在设计过程中,应充分考虑系统的可扩展性、安全性和灵活性,同时利用数据库的事务处理能力来保证数据的一致性,从而提高整个工作流系统的稳定性和性能。
### Java设计模式在工作流管理系统中的应用研究 #### 引言与背景 1979年,美国著名建筑工程设计大师Christopher Alexander在其著作《建筑的永恒之道》中提出了“模式”的概念,即每一个模式都代表着一个常见问题的...
该设计模式在工作流管理系统开发中的应用,有效解决了工作流程实例化和实例状态管理的问题。 首先,我们来解释一下“模型”与“实例”的概念。在工作流管理系统中,“模型”是指对业务流程的抽象表示,它定义了流程...
系统架构方面,慧正工作流系统V6版采用了基于WFMC(工作流管理联盟)规范的工作流引擎层、开发框架层和解决方案层的三层架构设计。工作流引擎层提供标准的操作接口,包括定义接口、管理接口、应用接口、交互接口等,...
通过上述对工作流概念、工作流引擎和工作流管理系统以及WfMC工作流模式的详细介绍,我们可以更深入地理解工作流技术的基本原理及其在实际应用中的重要性。这对于设计和实施高效的工作流系统具有重要的指导意义。
例如,它可能涵盖BPMN(Business Process Model and Notation)流程建模语言,它是工作流设计的标准,用于可视化表示业务流程。此外,笔记可能还会讲解工作流引擎如Activiti、Flowable的使用,以及如何通过API或配置...
在设计中,可根据事务执行模式选择合适的工作流模式。常见的工作流模式如顺序工作流、并行工作流和状态机工作流等,每种模式都有其特定的应用场景和优势。 综上所述,Java工作流引擎的开发和设计涉及到多个层面,...
在本项目中,开发者使用了Visual Studio 2005(VS2005)作为开发工具,以及SQL Server 2005作为数据库管理系统,构建了一个基于MVC(Model-View-Controller)三层架构的工作流系统。 1. **MVC三层架构**:MVC是一种...
### ASP.NET基于工作流引擎的系统框架设计与开发 #### 一、项目概述 本项目主要探讨了在ASP.NET平台上采用工作流引擎技术进行系统框架的设计与开发。工作流技术是一种标准化的方式,用于定义和执行业务流程中的...
在本文中,我们将深入探讨工作流引擎的开发、工作流概念、参考资料及其在实际应用中的重要性。 首先,理解工作流(Workflow)的基本概念至关重要。工作流是指一个组织内或跨组织的业务过程,由一系列相互关联的任务...
### 工作流系统的设计与实现 #### 一、系统设计概述 工作流系统的本质在于规范内部业务流程,实现流程的自动化与标准化,提高工作效率。本文档将详细探讨工作流系统的设计理念及其核心组成部分。 #### 二、工作流...
工作流系统开发文档涵盖了工作流技术调研、工作流系统功能概述、工作流运行的模式列举、业内工作流产品调研、需求分析、系统模块划分、工单系统的功能性需求列表、需求变更总结、设计方案、数据库设计、hibernate ...
基于Web的工作流管理系统的设计与实现,是随着互联网技术的飞速发展和企业信息化需求的日益增长,成为现代企业管理中不可或缺的一部分。工作流管理系统的引入,旨在优化企业的业务流程,提高工作效率,降低成本,...