激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

2021-06-17 11:42一代天驕 Java教程

這篇文章主要介紹了淺談JAVA工作流的優(yōu)雅實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

今天查找線上問題,看到一個讓我腦洞大開的工作流實現(xiàn)方式。以前用過責(zé)任鏈模式,也用過模板模式實現(xiàn)類工作流的方式,但是對比這個工具,遜色不少,不賣關(guān)子了,就是apache commons chain,它是command模式與責(zé)任鏈模式的綜合體。

1、apache commons chain 中的角色有:chain、context、command。

淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

2、在我們訂單系統(tǒng)有這樣的業(yè)務(wù),就是退票的時候,會根據(jù)核損后的訂單價格,給客人退錢,但是訂單的金額,由幾部分組成

有現(xiàn)金、商旅卡、有優(yōu)惠券。所以根據(jù)需求,我們需要一個工作流來走下退款流程,我們的流程流轉(zhuǎn)的步驟是這樣的:

先退商旅卡-----如果還有余額退現(xiàn)金-----------還有余額再退優(yōu)惠券,分析一下這樣的需求,剛好可以用這個工具,直接上代碼了

先引入包

?
1
2
3
4
5
<dependency>
     <groupid>commons-chain</groupid>
     <artifactid>commons-chain</artifactid>
     <version>1.2</version>
   </dependency>

編寫command

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * 退商旅卡cash
 * created by 一代天驕 on 2018/7/1.
 */
@slf4j
public class refundbusinesscardcommand implements command{
  public boolean execute(context context) throws exception {
    refundcontext refundcontext = (refundcontext) context;
    log.info("orderid:{} 退款開始,第一步:退商旅卡,金額:{}",refundcontext.getorderid(),"10");
    return false;
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * 退現(xiàn)金
 * created by 一代天驕 on 2018/7/1.
 */
@slf4j
public class refundcashcommand implements command {
 
  public boolean execute(context context) throws exception {
    refundcontext refundcontext = (refundcontext) context;
    log.info("orderid:{}退款開始,第二步:退現(xiàn)金,金額:{}",refundcontext.getorderid(),"5");
    return false;
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * 退優(yōu)惠券
 * created by 一代天驕 on 2018/7/1.
 */
@slf4j
public class refundpromotioncommand implements command{
 
 
  public boolean execute(context context) throws exception {
    refundcontext refundcontext = (refundcontext) context;
    log.info("orderid:{} 退款開始,第二步:退優(yōu)惠券,金額:{}",refundcontext.getorderid(),"20");
    return false;
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * created by 一代天驕 on 2018/7/1.
 */
@data
public class refundcontext extends contextbase {
 
  /**
   * 訂單號
   */
  private integer orderid;
 
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 *
 * 退票的工作流實現(xiàn)
 * created by 一代天驕 on 2018/7/1.
 */
public class refundticketchain extends chainbase {
 
  public void init() {
    //退商旅卡
    this.addcommand(new refundbusinesscardcommand());
    //退現(xiàn)金
    this.addcommand(new refundcashcommand());
    //退優(yōu)惠券
    this.addcommand(new refundpromotioncommand());
  }
 
 
  public static void main(string[] args) throws exception {
    refundticketchain refundticketchain = new refundticketchain();
    refundticketchain.init();
    refundcontext context = new refundcontext();
    context.setorderid(1621940242);
    refundticketchain.execute(context);
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/vacblog/article/details/80875788

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产一区二区三区四区阿崩 | 午夜精品成人 | 激情在线视频 | 一区二区三区日本在线观看 | 亚洲视频观看 | 国产在线久 | 国产在线地址 | 国产在线观看av | 手机黄色小视频 | 国产成人综合在线观看 | 国产精品视频中文字幕 | 亚洲导航深夜福利涩涩屋 | 毛片免费视频观看 | 精品在线观看一区二区 | 国产一区二区视频观看 | 久久久久无码国产精品一区 | 免费日本一区二区 | 一级性生活免费视频 | 免费看h网站 | 草b视频在线观看 | 九九视频在线观看6 | 国产99视频精品免视看9 | 日本成人在线免费 | 亚洲网视频 | 亚洲成人在线视频网 | sese综合 | 午夜偷拍视频 | 毛片视频免费播放 | 国产午夜亚洲精品午夜鲁丝片 | 久久精品欧美一区二区 | 男女一边摸一边做羞羞视频免费 | 久草在线观看首页 | 欧美日本另类 | 在线看免电影网站 | 久操福利视频 | 中文字幕免费在线观看视频 | 欧美日韩在线播放一区 | 黑人三级毛片 | 中日韩乱码一二新区 | 欧美国产第一页 | 深夜视频福利 |