今天翻到了伍迷前輩的大話設計模式中的《第二章 商場**-策略模式》。我感覺用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...