工作流系统之三十二 设计模式在工作流系统开发中的运用

python基础学习笔记——完结 文章目录1. python概述1.1 概述1.2 优缺点1.3 应用场景2. python解释器和集成环境的安装2.1. 编程语言分类2.2 基本环境搭建2.3 集成开发环境pycharm基本配置3. 基本语法3.1 python标准开发规范3.2 标准的输入输出3.3 变量与常量4. 数据类型4.1. 数值4.2 字符串4.3 列表4.4 元祖4.5 字典4.6 元组4.7 自定义类型4.8 查看数据类型type()函数5. 数据类型转换5.1类型转换表如下5.2 int函数5.3 float函数 阅读详情

GoF四人组一共介绍了23种面向对象的设置模式,为每一种特定的实现取了一个名字,根据模式的应用目的不同,将他们分为3类,创建型、结构性和行为型。
面向对象设计三原则:
优先使用组合
针对接口编程
为变化而设计

设计模式不是万能的,熟悉了这些模式,灵活运用它,并且不局限于设计模式,构架出适合自己的设计才是最重要的。

在工作流系统的开发中,后台的类是纯面向对象的方式实现的,因此少不了设计模式的运用:


单例模式:
读取数据库配置文件 fcconfig.xml
读取工作流相关的配置文件 fcworkflow.xml
读用户系统的配置文件 fcuser.xml

这种读取配置文件,返回多个属性值的,用单例模式,确保系统中只有一个实例在运行。

获取表的最大id号,用的是静态方法,因为只需要获取一个值。
静态方法和单例模式有区别:静态方法在系统运行后,就已经运行了,是一个方法,只有一个返回值。
单例模式是在需要获取这个流程实例的时候,才初始化这个类,返回的是一个类的实例。

 

工厂模式:
配置多数据库的支持;
配置流程的多种存储方式;
配置用户系统的多种实现方式
....
很多实现都能看到工厂模式的影子,大部分的实现都是采用 工厂模式+可配置的参数 来实现的。

 

外观模式,代理模式:
外观模式是在系统的封装好了功能前面再加一道入口门。在eworkflow中用户系统的对外提供统一的入口,有点类似外观模式。

 

代理模式:
资源的延迟访问。
为对象提供一个代理来控制对该对象的访问。

 

适配器模式:
在流程的表达式分析中,有用到适配器模式,系统提供了一套分析表达式的方法。也可以切换成其它的(用户自定义的)表达式分析器类。

 

装饰器模式:
比较常见的是在web请求后,加上拦截器或者是过滤器。

 

复合模式:
有多层次嵌套的上下级关系的节点,在实现的时候,采用了复合模式来达到一个递归的调用。就是在父层次的抽象类中,定义了节点有共性的属性。在子层次的类中,用一个集合来记录父层次类的实例个数,再通过遍历这个集合来达到递归出所有嵌套子节点的个数。

 

命令模式:
web请求的时候,所有的页面请求方式用命令模式来封装,达到统一的调用。

 

策略模式:
所有的节点的前置后置函数,都实现一个接口,接口提供一个方法,这个方法流程引擎中会调用。前置后置函数可以是一些业务函数。
所有的条件判断函数,也都是实现了一个统一的接口,接口提供一个判断方法,这个方法在流程引擎中会调用。 只要实现这个接口,用户可以自己写业务规则。

 

模版方法:这种在很多父层次的抽象类中,经常有实现。

 

观察者模式:在将自定义表单(eform)和eworkflow工作流的集成中,有类似使用观察者模式。在表单业务数据的提交后,产生事件,通知到工作流系统中,工作流系统接到通知后,将执行流程的动作提交,达到流程递进。

....

可能上面的归纳不是很准确,但是对接口编程,为变化而设计 这种思想贯穿了整个流程开发。还是那句话,设计模式不是万能的,能提炼出共性,符合使用设计模式的,使得复杂的处理更加简单了,就可以使用。

Agent应用实践之三十二 - 设计模式:Handoffs(交接) 本章通过讲解什么是Handoffs(交接)设计模式,然后通过AgentScope给大家演示该设计模式的实现。最后还分析了底层代码原理。这种设计模式在多Agent下非常有用,其实这个设计模式与Router路由设计模式有异曲同工之处。 阅读详情

相关推荐

Java设计模式在工作流管理系统中的应用研究

1979 年,美国著名建筑工程设计大师 ChristopherAlexander 在他的一本关于城市规划和建筑设计的著作 建筑的永恒之 道 中提出:每一个模式描述了一个在我们周围不断重复发生的 问题,以及该问题解决方案的核心,这样,就能多次地使用该方案 而不必做重复劳动 1987 年,WardCunningham 和 KentBeck 受 Christopher 的模式理论的启发, 决定采用模式思想发展出一个 有五个模式的语言来指导 Smalltalk 的新手, 他们的研究论文 UsingPatternLanguagesforObject-Orientedprograms 拉开了 软件工程领域设计模式研究的序幕 1995 年,EGamma R. Helm R.Johnson 和 J.Vlissides 在研究之后出版了 DesignPat terns-ElementsofReusableObject-OrientedSoftware 一书,标志 着软件工程领域的模式设计研究进入了空前的繁荣期, 设计模 式不断地被应用到软件工程的各个方面

21种工作流模式

1. 顺序(Sequence) 工作流中的各个活动在同一个进程中按顺序依次执行。 例子:在“发送货物”之后“发送单据”。 2. 平行拆分(Parallel Split) 工作流中从一个线程中的一个点拆分为在多个线程中平行执行的多个活动。 例子:活动“付款”激活了“发送货物”以及“通知顾客”的执行。 3. 同步(Synchronization) 工作流中的多个活动在一个

sz_bdqn的专栏 2122

LSF实践专题(15):LSF队列优先级以及抢占功能初探

在LSF暂停作业时,会向作业发送一个SIGTSTP信号,并且将作业状态变成SSUSP(system suspend),表示被系统暂停,这时,最好是作业的应用能够捕获和处理SIGTSTP信号,否则,即使在LSF中,作业会被认为暂停了,并且释放了slots资源,但是在实际OS中,作业进程仍然在继续,并且不会释放CPU等计算资源。是指LSF自动将低优先级作业暂停(suspend),将空余出来的资源交给高优先级队列中的作业使用,等到高优先级队列的作业结束后,再将被暂停的作业恢复(resume)并继续运行。

richycn的博客 1919

Workflow设计模式

工作流系统的设计模式 1、复制模式(Copier Pattern) 通常是将单个数据处理模块中的数据,完整地复制到两个或更多的数据处理模块中,然后再由不同的数据处理模块进行处理。需要对同一个数据集采取多种不同的数据处理转换,我们就可以优先考虑采用复制模式。 2、过滤模式(Filter Pattern) 3、分离模式(Splitter Pattern) 想把数据分类为不同的类别来进行处理时,分离模...

JackLi31742的博客 1597

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码1.Win10系统配置OpenPose1.7.0的Python API 本人最近在研究基于骨架的动作识别方法,有幸看到端到端的ST-GCN算法,于是决定自己复现一下。(具体原理这里不介绍,大家自行查阅,比如Openpose是个啥?ST-GCN又是个啥?) 1.Win10系统配置OpenPose1.7.0的Python API 安装步骤: (1) ...

QIANFANGshiwo的博客 3041

3DE重客户端安装

3DE重客户端安装

m0_48170265的博客 9429

设计模式(一)工厂模式

技术组成ActivitijBPM5数据库持久层ORMMyBatis3Hibernate3持久化标准无JPA规范事务管理MyBatis机制/Spring事务控制Bitronix,基于JTA事务管理数据库连接方式Jdbc/DataSourceJdbc/DataSource支持数据库Oracle、SQL Server、MySQL等多数数据库Oracle、SQL Server、MySQL等多数数据库设计模式Command模式、观察者模式等内部服务通讯Service间通过API调用O基于Apache Mina异步通讯

lomtom's Blog 514

FineReport V11.0安装避坑指南:从下载到激活的完整流程(附百度网盘链接)

本文提供FineReport V11.0从下载、安装到激活的完整避坑指南。详细解析了部署前的环境准备、安装过程中的JVM内存等核心配置、激活流程以及安装后的优化与常见问题排查,旨在帮助用户一次部署成功,确保企业级报表平台的稳定运行。

echo99的专栏 1195

浅谈简单工作流设计——责任链模式配合策略与命令模式的实现

本文以项目中的一个工作流模块,演示责任链模式、策略模式、命令模式的组合实现! 流程简介 最近在做的一个项目,涉及到的是一个流程性质的需求。关于工程机械行业的服务流程:服务任务流程和备件发运流程。 项目之初,需求不是很清晰,算是演化模型吧。先出一个简单版本,然后根据用户的使用情况,再进一步探测新需求。所以也就是说这两个流程中的每一步暂时都不是固定的,而应该是可配置、可增减的。 目前暂定的...

tansitongba 890

PIC单片机应用开发实践教程(二): 新建工程

File---New ProjectMicrochip Embedded --- Standalone Project 选择所用MCU对应型号 点击 Finish 后,工程就建好了 至止,我们的一个新工程就建完成了!

qq_57798018的博客 2888

PLC编程入门基础知识

PLC即为可编程逻辑控制器,实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。

SANRENYIXING的博客 2万+

OpenClaw 多智能体系统实践

OpenClaw 不应该只是一个简单的 AI 命令工具,而应该逐步演化成一个具备以下能力的本地智能体系统: - 有明确 Agent 分工; - 有项目级长期记忆; - 有 Agent 级独立记忆; - 有上下文裁剪机制; - 有成本控制策略; - 有 Gateway 服务; - 有本地工具调用能力; - 能和智能终端、MCP、桌面文件系统联动; - 能够长期服务于一个持续迭代的项目。

Maddie_Mo的博客 600

Swin Transformer 与 CNN 结合实现图像分类

Swin Transformer 与 CNN 结合实现图像分类。(含swin transformer 结构讲解,cnn网络搭建,代码)

这里是Mae。 5027

基于AnimeGAN模型生成宫崎骏风格动漫照片

用于动画风格纹理和线条转换的灰度样式丢失;新颖的颜色重建损失,以保留内容图像的颜色;新的灰度对抗损失防止生成的图像从显示为灰度图像;使用深度可分卷积和反向残块的轻量级生成器,以实现更快的传输。实验表明,AnimeGAN可以对真实世界的照片进行变换场景动画风格的图像与高质量的动画视觉效果和显著优于最先进的风格化方法。# 生成宫崎骏风格图片 model = hub . Module('animegan_v1_hayao_60' , use_gpu = True)images:输入的图片数据。

优快云 精品推荐 3630

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VKDoc 中文系列教程 2025.10 更新

龙哥盟 1262

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

1.2 Python随手简记之基础篇(二)

python随手简记

SSS465的博客 854

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

GPT-4o真实演进:系统级优化如何重塑AI落地效果

大语言模型已进入‘后版本号时代’,单纯关注参数量或命名迭代(如所谓GPT-5.5)正掩盖真正影响业务效果的技术本质。其核心演进逻辑正从模型架构单点突破,转向推理架构重构、上下文压缩算法、流式解码优化、函数调用可靠性增强及RAG语义协同等系统级协同。这些隐性优化不改变模型权重,却显著提升首字延迟(TTFT)、上下文有效利用率、多模态对齐精度与工具链稳定性,直接决定智能客服响应速度、法律合同分析准确率、教育APP交互自然度等关键场景表现。理解并落地这些工程细节,比追逐虚名更关乎AI项目成败。

anqiu4023的博客 402

面经相关题目

目录一、**Java面向对象有哪些特征,如何应用**二、HashMap原理是什么,在jdk1.7和1.8中有什么区别三、ArrayList和LinkedList有什么区别四、高并发中的集合有哪些问题五、jdk1.8的新特性有哪些一、接口的默认方法二、Lambda 表达式三、函数式接口四、方法与构造函数引用五、Lambda 作用域六、访问局部变量七、访问对象字段与静态变量八、访问接口的默认方法九、Date API十、Annotation 注解六、Java中重写和重载有哪些区别七、接口和抽象类有哪些区别一、抽象

zi2242975806的博客 2246

基于 HarmonyOS ArkTS API 24|MaxLines 限制单行标签文字行数,防止标签文字换行挤乱流式标签布局

鸿蒙HarmonyOS从架构设计之初就确立了声明式UI的开发范式。与传统的命令式UI开发不同,声明式UI要求开发者描述"界面应该是什么样子",而不是"如何一步步构建界面"。这种范式带来了诸多优势:代码更加简洁、可读性更强、状态与视图的同步由框架自动完成,开发者无需手动调用、等方法来更新界面。在ArkTS中,UI的构建是通过链式调用来完成的。每一个UI组件(如、、、等)都可以通过点号语法链式地设置属性。这种设计借鉴了现代UI框架的优秀实践,同时针对鸿蒙的分布式渲染引擎进行了底层优化,使得UI的构建过程既直观又

2401_89578244的博客 202

HarmonyOS 6糖画技艺FlexAlign.Center 表示在 Flex 容器的主轴方向上居中对齐,配合 Column 容器默认的垂直主轴方向,使得生肖字符精确地位于圆形的中心位置

健身管理类应用与之前分析的外卖、招聘等应用有本质差异——它的核心数据不是"交易"或"任务",而是"时间序列的身体状态数据":每次训练有时长、卡路里、组数、重量;每次饮食有热量、蛋白质、碳水、脂肪;每周有运动时长趋势图。这些数据的共同特征是"随时间积累,用户需要横向对比和趋势分析"。这导致健身App的数据层设计必须从第一天就考虑"历史数据查询"和"多维度聚合"的需求,而非仅关注当前单条记录的增删改查。健身应用的用户行为模式也有独特之处:用户使用健身App的目标是"坚持",而不是"一次性完成任务"。这意味着激励

jin421352的博客 150

工作流几种常用的模式

1、  没有任何分支和条件的(如下图) 该流程会按照A—B—C的顺序依次往下走。 2.带有分支的(如下图) 这种情况又可以分为如下几种情况:   (1):节点A的后驱并行,D的前驱异或聚合。 当节点A提交后,流程同时到达B,C,只要B或者C有一个人提交流程就流转到D(如下图)。 (2):节点A的后驱并行,D的前驱同步聚合。 当节点A提交后,流程同时到达B,c

FighterLiu的专栏 3536

Workflow设计模式指的什么?

写在前面 本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定大数据理论体系 解答 我们将多个不同的处理模块连接在一起,最后得出一个自己需要结果的有向无环图(Directed Acyclic Graph/DAG),称为一个工作流系统Workflow System。 1. 复制模式 2. 过滤模式 3. 分离模式 4. 合并模式 补充 复制模式(Copier Pattern) 复制模式

Shockang的博客 1万+
上一篇: 工作流系统之三十一 回退流的实现
下一篇: 工作流系统之三十三 撤回的实现
LikeLaura
博客等级 码龄19年 50粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值