首页 > 其他分享 >模板模式、责任链模式的使用

模板模式、责任链模式的使用

时间:2024-10-31 23:10:47浏览次数:1  
标签:业务 校验 模式 生成 责任 票据 模板

背景

​ 当前系统从其他业务系统的获取业务数据,再结合模板来生成票据。生成过程包含模板匹配、票据构建、票据校验、票据保存。同时需要支持三种生成方式,即定时任务自动生成、批量生成、单个生成。

​ 对于不同业务类型数据,生成票据过程存在细微差异(获取业务数据、单据校验等)。

对于不同生成方式,生成票据过程存在细微差异(模板校验、单据校验等)。

设计

从两个维度设计代码结构:
1. 纵向采用模板模式,定义好生成票据的全流程框架,并给定默认实现方式。针对不同业务类型的数据,可自定义模板中的步骤,做个性化处理。
2. 横向采用责任链模式,每个生成方式,可以对每个流程节点注入handler,实现个性化处理。
3. 如此一来,后续若接入新的业务类型数据、新的生产方式,只需在原有基础上增加新的实现即可。符合开闭原则。

标签:业务,校验,模式,生成,责任,票据,模板
From: https://www.cnblogs.com/czemxv/p/18519118

相关文章

  • flask模板
    模板基础使用block块操作父模板挖坑,子模板填坑{%blockxxx%}{%endblock%extends继承{%extends'xxx'%}继承后保留块中的内容{{super()}}include包含,将其他htm1包含进来{%include'xxx'%}宏的使用 宏定义:Python函数#}{%macroperson(name,ag......
  • 学习高校课程-软件设计模式-责任链模式和命令模式(lec9)
    原文链接ChainofResponsibility:ProblemExample:anonlineorderingsystem示例:在线订购系统–Therequestmustpassaseriesofchecks–Newrequirements:validation,filteringrepeatedfailedrequests,speedingupbyreturningcachedresults,andmore–......
  • 学习高校课程-软件设计模式-享元模式和代理模式(lec8)
    原文链接Flyweight:ProblemEachparticle,suchasabullet,amissileorapieceofshrapnelwasrepresentedbyaseparateobjectcontainingplentyofdata.Atsomepoint,whenthecarnageonaplayer’sscreenreacheditsclimax,newlycreatedparticlesno......
  • STM32F103C8T6学习笔记1--新建工程模板
    1、简介STM32是一系列由STMicroelectronics(瑞士意法半导体)公司设计和生产的32位微控制器产品线。这些微控制器基于ARMCortex-M内核,并具有高性能、低功耗和多种外设接口的特点。STM32处理器被广泛应用于各种嵌入式系统领域,包括工业控制、消费电子、汽车电子、物联网等。STM32......
  • C++笔记---可变参数模板
    1.简单介绍与基本语法可变参数模板是指模板的类型参数列表的的参数个数可变。C++11支持可变参数模板,也就是说支持可变数量参数的函数模板和类模板,可变数目的参数被称为参数包,存在两种参数包:模板参数包:表示零或多个模板参数。函数参数包:表示零或多个函数参数。参数包的......
  • 常用算法模板
    数论组合数方法1(小数据)数据范围\(1\leqn\leq10000\),\(1\leqb\leqa\leq2000\)说明通过递推预处理组合数公式\(C^{b}_{a}=C^{b}_{a-1}+C^{b-1}_{a-1}\)LLC[N][N];voidinit(){for(inti=0;i<N;i++){for(intj=0;j<=......
  • Python——石头剪刀布(附源码+多模式二改优化版)
    编程初学者通常会从简单的项目开始,以建立基础并增强信心。石头剪刀布游戏是一个很好的起点,因为它涉及到基本的逻辑判断、用户输入处理和随机数生成。本文将详细介绍如何使用Python编写一个石头剪刀布游戏,并提供完整的代码和解释。目录一、游戏介绍二、基本代码解析与实现......
  • C++泛型一:模板
    数据类型给程序设计带来的困扰及解决方案intmaxt(int,int);doublemaxt(double,double);若有一种占位符T,能够代替类型,便可以简化代码的冗余编写Tmaxt(T,T);C++模板模板声明如下template<typenameT1,...>template是C++的模板声明关键字,尖括号内为模板参数列表typ......
  • 《程序员修炼之道:从小工到专家》阅读笔记1---程序员的责任与担当
    《程序员修炼之道:从小工到专家》,开篇关于责任的阐述如同一盏明灯,照亮了我对程序员这一职业的认知之路。责任,是程序员工作的基石。在软件开发的世界里,我们所编写的每一行代码都承载着重要的使命。这不仅仅是为了完成任务,更是为了确保软件的质量、稳定性和安全性。我们不能仅仅满足......
  • Flink On Yarn运行模式:会话模式部署、单作业模式部署、应用模式部署
    YARN上部署的过程是:客户端把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会向Yarn的NodeManager申请容器。在这些容器上,Flink会部署JobManager和TaskManager的实例,从而启动集群。Flink会根据运行在JobManger上的作业所需要的Slot数量动态分配TaskManager资......