WF4 0實戰(二) 超市收銀軟體

2022-01-31 04:01:47 字數 4440 閱讀 9738

今天翻到了伍迷前輩的大話設計模式中的《第二章 商場**-策略模式》。我感覺用wf去實現,比較簡單直觀,我很喜歡做簡單的事情。故使用了伍迷前輩書中的兩個主要人物小菜和大鳥,寫下這篇部落格。

大鳥給小菜出了乙個題目,做乙個收銀軟體。小菜用wf4不到二十分鐘寫出了第乙個版本,功能也非常的簡單,如下:

定義乙個productitem類和order類,如下:

1public

class

productitem28

public

intproductnumber913

public

string

productname

141819}

2021

public

class

order

2227

public

list

<

productitem

>

productlist

2832

}設定處理流程:

例項測試: 

1order myorder 

=new

order();

2productitem item1 

=new

productitem();

3item1.productname ="

蘋果";4

item1.productprice =5

;5item1.productnumber =2

;6myorder.productlist.add(item1);78

productitem item2 

=new

productitem();

9item1.productname ="

外套";10

item1.productprice 

=200;11

item1.productnumber =1

;12myorder.productlist.add(item2);

13//

create dictionary with input arguments for the workflow

14idictionary

<

string

, object

>

input 

=new

dictionary

<

string

, object

>

1517

};18

19//

execute the workflow

20idictionary

<

string

, object

>

output21=

workflowinvoker.invoke(

newcashregister2(), input);

2223

//get the totalamount returned by the workflow

24decimal

total =(

decimal

)output[

"totalprices"];

2526

console.writeline(

"工作流返回的總金額為:"+

total.tostring());

27console.read();

執行結果:

大鳥看了之後,說如果我要增加乙個全部產品打8折的功能,你去修改一下。

修改流程,加入如下節點:

大鳥看了之後,說我要八折、七折、五折、滿300送100、滿200送50...,你再去修改一下

小菜思考片刻後,在類order中加入乙個屬性,如下:

1public

string

cashmethod

2在流程中加入乙個同名的輸入引數:cashmethod,如下。

修改流程,新增乙個switch活動用於判斷:

使用:1

order myorder 

=new

order();

2productitem item1 

=new

productitem();

3item1.productname ="

蘋果";4

item1.productprice =5

;5item1.productnumber =2

;6myorder.productlist.add(item1);78

productitem item2 

=new

productitem();

9item2.productname ="

外套";10

item2.productprice 

=200;11

item2.productnumber =1

;12myorder.productlist.add(item2);

13myorder.cashmethod ="

滿200返回50";

14//

create dictionary with input arguments for the workflow

15idictionary

<

string

, object

>

input 

=new

dictionary

<

string

, object

>

1618

};19

20//

execute the workflow

21idictionary

<

string

, object

>

output22=

workflowinvoker.invoke(

newcashregister3(), input);

2324

//get the totalamount returned by the workflow

25decimal

total =(

decimal

)output[

"totalprices"];

2627

console.writeline(

"工作流返回的總金額為:"+

total.tostring());

28console.read();

得到如下輸出的結果:

小鳥說:「現在,無論你如何改需求,我只要用wf4.0設計器,手動簡單地拖拉控制項定製流程,再稍稍調整一下**,就ok了,呵呵。」

大鳥好好表揚了一番小鳥。連說「不錯,不錯」。

總結:

這篇文章體現了wf乙個很大的優點,就是使用者能夠定製化。文章可以擴充套件乙個形象的流程設計器,這樣使用者就可以隨便修改自己超市的收銀規則了。

**:/files/zhuqil/wf2demo.rar

(全文完)

以下為廣告部分

如果您想看下您的**https部署的是否安全,花1分鐘時間來 myssl.com 檢測以下吧。讓您的https**變得更安全!

ssl檢測評估

快速了解https**安全情況。

安全評級(a+、a、a-...)、行業合規檢測、證書資訊檢視、證書鏈資訊以及補完、伺服器套件資訊、證書相容性檢測等。

ssl證書工具

安裝部署ssl證書變得更方便。

ssl漏洞檢測

讓伺服器遠離ssl證書漏洞侵擾

tls robot漏洞檢測、心血漏洞檢測、freak attack漏洞檢測、ssl poodle漏洞檢測、ccs注入漏洞檢測。

WF4 0 實戰 WF4 0申請審批例項

工作流 workflow 就是 業務過程的部分或整體在計算機應用環境下的自動化 它主要解決的是 使在多個參與者之間按照某種預定義的規則傳遞文件 資訊或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現 一句話 工作流就是一系列相互銜接 自動進行的業務活動。再通俗點就是對於乙個業務需...

WF4 0實戰系列索引

wf4.0實戰 二 超市收銀軟體 wf4.0實戰 三 wcf服務 wf4.0實戰 五 實現乙個直觀易擴充套件的自動測試框架 wf4.0實戰 六 控制wpf動畫 wf4.0實戰 七 請假流程 帶駁回操作 wf4.0實戰 八 實現一套圖形化的資料訪問層 wf4.0實戰 九 猜數字遊戲,測下你的智力 wf...

WF4 0實戰系列索引

wf4.0實戰 二 超市收銀軟體 wf4.0實戰 三 wcf服務 wf4.0實戰 五 實現乙個直觀易擴充套件的自動測試框架 wf4.0實戰 六 控制wpf動畫 wf4.0實戰 七 請假流程 帶駁回操作 wf4.0實戰 八 實現一套圖形化的資料訪問層 wf4.0實戰 九 猜數字遊戲,測下你的智力 wf...