介面表 一種通用機制

2021-09-06 01:52:15 字數 557 閱讀 5887

需求:

生成一種單據:發貨單。

發貨單分為頭和行,頭根據行的一些屬性分組產生。

需要各種驗證。

同時要插入批次表。

在整個系統中,不止一處會需要生成發貨單。

分析:在系統中每次都要生成發貨單的地方都寫一套程式,會發現每套程式都比較類似。

面對比較類似的程式時,就要分解程式,把相同的部分和不同的部分區分開。

針對該程式,變化的是每次單據的資料,不變的是分組,驗證,插相關表的操作。所以,要把資料和操作分開。

對策:乙個介面表,包含行和頭的需要的字段。對於這種頭行結構的單據,介面表是保持頭行結構還是扁平化,是需要考量的乙個問題。針對該例,頭根據行的資料分組產生,所以介面表扁平化,可以把分組過程寫進通用程式中。

乙個程式,從介面表中取資料,執行分組,驗證,插相關表的操作。

擴充套件:為了支援併發,可以加入批次機制,用乙個

group_id

來區分每次要處理的資料。

為了給出是否成功的犯規,可以加入

process_flag

等。為了給出錯誤資訊的反饋,可以加入乙個錯誤資訊表。

介面表 一種通用機制

需求 生成一種單據 發貨單。發貨單分為頭和行,頭根據行的一些屬性分組產生。需要各種驗證。同時要插入批次表。在整個系統中,不止一處會需要生成發貨單。分析 在系統中每次都要生成發貨單的地方都寫一套程式,會發現每套程式都比較類似。面對比較類似的程式時,就要分解程式,把相同的部分和不同的部分區分開。針對該程...

介面表 一種通用機制

需求 生成一種單據 發貨單。發貨單分為頭和行,頭根據行的一些屬性分組產生。需要各種驗證。同時要插入批次表。在整個系統中,不止一處會需要生成發貨單。分析 在系統中每次都要生成發貨單的地方都寫一套程式,會發現每套程式都比較類似。面對比較類似的程式時,就要分解程式,把相同的部分和不同的部分區分開。針對該程...

一種通用CMakeLists模板

1.cmake verson,指定cmake版本 cmake minimum required version 3.16 2.project name,指定專案的名稱,一般和專案的資料夾名稱對應 project demo 3.head file path,頭檔案目錄 include director...