先出圖
1、A、B、C、D、E都是對象或者視為一個獨(dú)立的功能模塊;紅色的箭頭代表數(shù)據(jù)流,綠色箭頭和黃色塊標(biāo)示最終數(shù)據(jù)產(chǎn)出路徑;
2、模式1是一個串聯(lián)的數(shù)據(jù)流向,符合模型與直觀的邏輯概念。但是缺點(diǎn)是:產(chǎn)生控制耦合,A存在的前提必須以B存在為基礎(chǔ),A必須知道B的接口和返回。同時需要判斷B的返回。整個業(yè)務(wù)的邏輯分散在A、B、C、D、E中,增加理解,維護(hù),調(diào)試的難度;
3、模式2也能夠很好的完成功能,所不同的是,把分散在A、B、C、D、E中整個業(yè)務(wù)邏輯抽離出來,放在一個“業(yè)務(wù)邏輯控制器”當(dāng)中,此時,A、B、C、D、E彼此不存在任何關(guān)聯(lián),他們都只會被業(yè)務(wù)控制器調(diào)用。最終數(shù)據(jù)由控制器產(chǎn)出。
我認(rèn)為模式2明顯好過模式1。雖然模式1符合直觀的邏輯思維,處理過程貼近業(yè)務(wù)原形,但事實(shí)上卻不是個好方案。