Prototype功能預覽六:業務數據與處理代碼集中管理的工作流水線

框架整體介紹:http://blog.csdn.net/flyxxxxx/article/category/7055640

對此框架有興趣或想參與開發的請加QQ羣:255195191

在基於Spring開發過程中,業務要處理的數據與業務代碼之間,往往分散在多個方法中,方法與方法之前存在大量的交叉調用,這種方式對於複雜的業務的開發工作及後續的代碼維護實際是很不利的,對於初中級程序員來說,更難以理清之間的關係。

採用Prototype框架,業務代碼與要處理的數據集中在業務類中,業務類採用非單一實例模式,通過責任鏈的方式,整個業務鏈,一項工作一項工作以鏈條的形式完成,前一項工作失敗或不能完成則可中止後續工作,整體代碼更加清晰,開發人員更容易面向業務進行開發,也很容易完成一些舊的超大方法或類的重構問題。


@BusinessDefine(sync = { @BusinessMethod(value = "validate", readOnly = true), @BusinessMethod(value = "business"),
        @BusinessMethod(value = "after", transaction = false), async = {
                @BusinessMethod(value = "async", overload = true) })

//此註解定義了業務類依次按方法validate\business\after\async的順序執行,任意一個方法返回false,後面的方法將不再執行

//所有這此方法名可自定義,子類可以任意定義這幾個方法中的一個或多個,每個方法返回值類型只能是void或boolean,方法參數可以來源於Spring applicationContext

public abstract class Business {

    public void execute() {//業務類入口方法
        // do nothing
    }

public class DemoBusiness extends Business{

    @Input(@Prop("關鍵字"))//這是作爲輸入數據

    private String keyword;

    //定義一些成員變量,作爲輸入輸出及中間變量
    public boolean validate(){
       //此方法中進行輸入數據的驗證
    }
    public void business(TestService ts,Connection connection){
       //此方法執行具體業務
    }
    public void after(){
       //此方法在業務完成後進行一些事務處理
    }
    void async(LogService ls){
       //異步記錄用戶的操作日誌
    }
}

在Prototype框架中,方法參數通常只是來源於Spring applicationContext中的bean,輸入及輸出結果、中間變量作爲成員變量形式存在,

相比較而言,Prototype框架通常在一個類中完成一項業務的處理,處理的數據與邏輯形成一個工作流水線,對於代碼和數據的管理更加有效。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章