方法:過程分解 + 對象模型
過程分解:通過分解,將過程分階段,各階段分步驟

image.png
對象模型:過程分解,缺少業(yè)務(wù)表達(dá)能力,無法復(fù)用業(yè)務(wù)流程,所以需要模型,自下而上,把多個(gè)模型共同點(diǎn)抽離出來成為一個(gè)共通模型

image.png
實(shí)踐:代碼分離 + 多態(tài)
如何自上而下分離出步驟,如何自下而上抽離出模型,答案是:多維思考,矩陣分析。
以商品上架為例,橫軸將步驟羅列,歸類后,分為創(chuàng)建商品,上架商品,上架審核通過,上架審核拒絕這幾個(gè)階段。(其為步驟分離)??v軸為各個(gè)model。然后在每個(gè)model中的各個(gè)階段填充步驟。

image.png
通過上面的矩陣分析,我們不難看出普通品和組合品可以復(fù)用同一套流程編排代碼,可抽象出同一個(gè)model(其為對象模型)。而贈(zèng)品和出清品的業(yè)務(wù)相對簡單,更適合有一套獨(dú)立的編排代碼,這樣的代碼結(jié)構(gòu)會(huì)更容易理解。
通用矩陣:

image.png
代碼實(shí)操
過程分解,代碼實(shí)操就是代碼分離
對象模型,代碼實(shí)操就是多態(tài)