(二)設計模式(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.pswp.cn/diannao/97527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/97527.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/97527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

現代C++性能陷阱:std::function的成本、異常處理的真實開銷

1. std::function 的成本 std::function 是一個通用的、類型擦除的函數包裝器,它非常方便,可以存儲和調用任何可調用對象(函數、lambda、函數對象、bind表達式等)。然而,這種靈活性是有代價的。 主要成本來源&#xff…

基于Spark的白酒行業數據分析與可視化系統的設計與實現

文章目錄有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主項目介紹一、項目背景與研究意義二、系統整體架構三、系統功能設計四、應用場景與價值五、項目特色與創新點六、總結與展望每文一語有需要本項目的代碼或文檔以及全部資源,或者部…

織夢會員中心模板調用某個欄目名和欄目下文檔的辦法

大家在用到織夢dedecms時候,需要在會員中心模板調用欄目的名稱和鏈接,還有某個欄目下的文檔要怎么操作呢? 我們都知道,在會員中心模板,直接用dede:type或者dede:arclist標簽是不行的,在會員中心調用只能用p…

區塊鏈的法律定位:技術、工具還是資產?

高鵬律師首席數據官,數字經濟團隊創作AI輔助當我們談論區塊鏈時,我們在談論什么?是那串不可篡改的哈希值,是去中心化的信仰圖騰,還是藏在代碼背后的權利密碼?今天,我們不聊技術迭代的炫酷&#…

LeetCode每日一題,2025-8-31

dfs搜索解數獨,重點是如何判斷當前這位置的board[x][y]是否可以填數字num public class T37 {public static void main(String[] args) {char[][] board new char[][]{{5, 3, ., ., 7, ., ., ., .},{6, ., ., 1, 9, 5, ., ., .},{., 9, 8, ., ., ., ., 6, .},{8, …

Linux 進程信號學習筆記:從概念到實操

一、Linux 信號基本概念1.1 生活角度理解信號我們可以把進程比作等待快遞的人,信號就像快遞:識別信號:就像我們知道快遞來了該 怎么處理,進程對信號的識別是內核程序員預先編寫的內置特性,即使信號沒產生,進…

解決多種類潮濕敏感元器件的多溫度、多時長的排潮烘干

鎧德科技ESD烘箱針對復雜電路產品的排潮烘干需求,可通過以下技術路徑實現多品類元器件的高效兼容處理:多溫區獨立控制系統采用蜂窩式加熱模塊陣列,每個0.6m獨立溫區可設置1℃精度支持同時運行3種不同溫度曲線(典型值:8…

obdumper和obloader遷移OceanBase業務庫(一):實施手冊

obdumper和obloader遷移OceanBase業務庫(一):實施手冊導出前準備全庫(模式)數據導出全庫(模式)數據導入導入后檢查環境信息:OceanBase v4.3.5單機部署,MySQL租戶OBDUMPER…

SQLSugar 快速入門:從基礎到實戰查詢與使用指南

目錄 ?編輯 一、SQLSugar 簡介 二、SQLSugar 環境搭建 2.1 安裝 SQLSugar 2.1.1 通過 Visual Studio NuGet 圖形化界面安裝 2.1.2 通過 NuGet 命令行安裝 2.2 引用 SQLSugar 命名空間 三、SQLSugar 核心初始化配置 3.1 基礎初始化(非 IOC 模式&#xff09…

Python與Rust語法對比詳解:從入門到精通

Python與Rust語法對比詳解:從入門到精通 前言 Python和Rust作為當今最受關注的編程語言,分別代表了動態類型和靜態類型語言的典型特征。本文將從語法層面深入對比這兩種語言,幫助開發者理解它們的設計理念和使用場景。1. 基礎語法結構 1.1 He…

視頻加水印_帶gif 加動態水印 gif水印 視頻浮動水印

如果你有一個視頻,你想給它加一個水印,讓水印浮動,而且加的還是 GIF 動態圖片水印,那么你可以使用這個工具。首先把你的兩個文件拖進來,然后點擊第三個按鈕。加好了,打開看一下,我們看到這個水印…

C# 字符和字符串

原文:C# 字符和字符串_w3cschool 請勿將文章標記為付費!!!!! C#字符和字符串 C#的 char 類型別名 System.Char 類型表示 Unicode 字符。 在單引號中指定char字面值: …

IntelliJ IDEA 反編譯JAR包記錄

本文記錄了使用 IntelliJ IDEA 內置反編譯工具對 JAR 包進行反編譯的詳細步驟,方便日后快速參考和使用。 🛠? 工具準備 反編譯工具使用的是 IntelliJ IDEA 內置的 Java 反編譯器,無需額外安裝其他工具。 工具路徑: /Applications…

KingbaseES JDBC 驅動詳解:連接、配置與最佳實踐

目錄KingbaseES JDBC 驅動詳解:連接、配置與最佳實踐引言一、JDBC 基礎與 KingbaseES 實現1.1 JDBC 技術概述1.2 KingbaseES JDBC 驅動特點二、環境配置與驅動獲取2.1 驅動包選擇與依賴管理2.2 國密算法支持2.3 驅動版本信息獲取三、數據庫連接管理3.1 使用 DriverM…

破解 Aspose.Words 24.12,跳過 License 校驗,實現 HTML 向 Word/PDF 的轉換,附帶 Demo。

說明 在Java生態中處理Office文檔時,開發人員常面臨格式兼容性和功能完整性的挑戰。商業組件Aspose以其卓越的文檔處理能力成為企業級解決方案之一,支持Word、Excel、PDF等多種格式的精準轉換與操作。 請勿用于商業用途,若侵權請聯系我。 參考…

php連接rabbitmq例子

首先確保安裝好了Rabbitmq服務器。1.新建一個空白php項目&#xff0c;安裝php客戶端庫&#xff1a;composer require php-amqplib/php-amqplib2.生產者然后添加生產者代碼 (producer.php)<?php require_once __DIR__ . /vendor/autoload.php;use PhpAmqpLib\Connection\AMQ…

Docker Swarm vs Kubernetes vs Nomad:容器編排方案對比與選型建議

Docker Swarm vs Kubernetes vs Nomad&#xff1a;容器編排方案對比與選型建議 在微服務和云原生時代&#xff0c;容器編排成為支持大規模容器化應用的關鍵技術。本文將從問題背景、方案對比、優缺點分析、選型建議以及實際應用效果驗證五個方面&#xff0c;對Docker Swarm、Ku…

似然函數對數似然函數負對數似然函數

目錄1. 似然函數的定義2. 對數似然函數的定義3. 負對數似然函數的定義4. 負對數似然函數的優化5. 具體應用示例5.1 邏輯回歸中的負對數似然函數5.2 優化邏輯回歸的負對數似然函數1. 似然函數的定義 似然函數L(θ∣X)L(\theta | X)L(θ∣X)是在給定參數θ\thetaθ 下&#xff0…

鴻蒙地址選擇庫(ArkTs UI)

功能點&#xff1a;支持三級聯動、點擊確認返回省市區code及name&#xff08;安心&#xff09;、布局可以高度自定義 實現&#xff1a;TextPicker讀取本地json&#xff08;也可用第三方的json 不過需要自行調整了&#xff09; 先上圖吧、廢話下面再說&#xff1a; 湊和看吧、…

YOLO 目標檢測:數據集構建(LabelImg 實操)、評估指標(mAP/IOU)、 NMS 后處理

文章目錄基本知識介紹1.視覺處理三大任務2.訓練、驗證、測試、推理3.數據集3.1 數據集格式3.2 數據集標注4.上游任務和下游任務YOLO指標1.真實框&#xff08;Ground Truth Box&#xff09;與邊界框&#xff08;Bounding Box&#xff09;2.交并比&#xff08;IOU&#xff09;3.置…