当前位置: 首页 > news >正文

(二)设计模式(Command)


文章目录

  • 项目地址
  • 一、设计模式
    • 1.1 Command Design
      • 1. 创建命令接口
      • 2. 创建支付的Command类
      • 3. CommandScheduler
      • 4. 使用
    • 1.2 Chain of Responsibility
      • 1. 接口创建
      • 2. 审批人
      • 3. 发起审批
    • 1.3 State Pattern
      • 1. 创建简单的状态机
        • 定义动作和状态
        • 状态机
        • 使用状态机
    • 1.x Iterator
    • 1.x Observer


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、设计模式

1.1 Command Design

  • 核心:
    1. 将独立执行各种命令和需要的参数,封装成为一个类
    2. 在执行的类里,可以通过逻辑控制,来回滚和撤销

1. 创建命令接口

public interface ICommand
{void Execute(); //执行void Undo(); // 支持补偿事务

2. 创建支付的Command类

  • Command类主要是封装,支付和支付回滚的方法和必须要的参数
    1. 支付的执行就是付款
    2. 支付的回滚就是退款
      在这里插入图片描述

3. CommandScheduler

  • 用于集中处理所有的command
    在这里插入图片描述

4. 使用

在这里插入图片描述

1.2 Chain of Responsibility

1. 接口创建

在这里插入图片描述

2. 审批人

  • 部门经理
    在这里插入图片描述
  • 副总裁
    在这里插入图片描述
  • COO
    在这里插入图片描述

3. 发起审批

在这里插入图片描述

1.3 State Pattern

1. 创建简单的状态机

定义动作和状态

在这里插入图片描述

状态机
  • 使用switch表达式处理状态机
  • car的初始化状态state是 Stopped
    在这里插入图片描述
使用状态机
  • 通过TakeAction的状态机,转入不同的动作,返回更改后的新状态
    在这里插入图片描述

1.x Iterator

1.x Observer

http://www.dtcms.com/a/359024.html

相关文章:

  • SQL Server 临时表合并与数量汇总的实现方法
  • 大模型不听话?试试提示词微调
  • “可选功能“中找不到 OpenSSH, PowerShell 命令行来安装OpenSSH
  • windows 谷歌浏览器一直提示无法更新Chrome弹窗问题彻底解决
  • Learning Curve|学习曲线
  • 数据库攻略:“CMU 15-445”Project0:C++ Primer(2024 Fall)
  • 【开题答辩全过程】以 “与我同行”中华传统历史数字化平台的设计和分析-------为例,包含答辩的问题和答案
  • Linux软件定时器回顾
  • 本地部署开源媒体服务器 Komga 并实现外部访问( Windows 版本)
  • 容器存储驱动升级:美国VPS文件系统优化全指南
  • 上海我店模式的多维度探究
  • 对于STM32工程模板
  • CRM、ERP、HRP系统有啥区别?
  • 250830-Docker从Rootless到Rootful的Gitlab镜像迁移
  • 深刻理解软硬件链接
  • ubuntu24.04 qt6安装
  • 学习游戏制作记录(各种优化)
  • 复制VMware虚拟机后的网络配置
  • leetcode算法刷题的第二十二天
  • 论《运动战》
  • Linux查看有线网卡和无线网卡详解
  • UNet改进(36):融合FSATFusion的医学图像分割
  • Vue基础知识-单向绑定v-bind、双向绑定v-model、插值语法{{}}、Object.defineProperty实现数据代理
  • PostgreSQL数据类型一览(数值类型)
  • Spring和mybatis整合后事务拦截器TransactionInterceptor开启提交事务流程
  • 【Java实战⑧】Java常用类实战:解锁String、Object与包装类的奥秘
  • STL中的容器,迭代器
  • 规律作息 + 养成好的习惯 + 考研倒计时 111 天 + 线面积分入门 1 下半部分
  • 【路由器】TP Link 路由器为何无法进入管理后台
  • HarmonyOS AppStorage:跨组件状态管理的高效解决方案