今天翻到了伍迷前辈的大话设计模式中的《第二章 商场促销-策略模式》。我感觉用WF去实现,比较简单直观,我很喜欢做简单的事情。故使用了伍迷前辈书中的两个主要人物小菜和大鸟,写下这篇博客。

时间:4月16日        地点:大鸟的房间    人物:大鸟、小菜
    大鸟给小菜出了一个题目,做一个收银软件。小菜用WF4不到二十分钟写出了第一个版本,功能也非常的简单,如下:

定义一个ProductItem类和Order类,如下:

 1   public class ProductItem
 2     {
 3       public   decimal ProductPrice
 4       {
 5           get;
 6           set;
 7       }
 8       public int ProductNumber
 9       {
10           get;
11           set;
12       }
13       public string ProductName
14       {
15           get;
16           set;
17       }
18 
19     }
20 
21   public class Order
22   {
23       public Order()
24       {
25           ProductList = new List<ProductItem>(); 
26        }
27       public List<ProductItem> ProductList
28       {
29           get;
30           set;
31       }
32   }

设置处理流程:

实例测试:

 1         Order myOrder = new Order();
 2             ProductItem item1 = new ProductItem();
 3             item1.ProductName = "苹果";
 4             item1.ProductPrice = 5;
 5             item1.ProductNumber = 2;
 6             myOrder.ProductList.Add(item1);
 7 
 8             ProductItem item2 = new ProductItem();
 9             item1.ProductName = "外套";
10             item1.ProductPrice = 200;
11             item1.ProductNumber = 1;
12             myOrder.ProductList.Add(item2);
13             // create dictionary with input arguments for the workflow
14             IDictionary<string, object> input = new Dictionary<string, object> 
15             {
16                 { "Order" , myOrder }
17             };
18 
19             // execute the workflow
20             IDictionary<string, object> output
21                 = WorkflowInvoker.Invoke(new CashRegister2(), input);
22 
23             // Get the TotalAmount returned by the workflow
24             decimal total = (decimal)output["totalPrices"];
25 
26             Console.WriteLine("工作流返回的总金额为:"+total.ToString());
27             Console.Read();

运行结果:

大鸟看了之后,说如果我要增加一个全部产品打8折的功能,你去修改一下。

小鸟思考片刻,在流程上加上一个打折的变量:

修改流程,加入如下节点:

大鸟看了之后,说我要八折、七折、五折、满300送100、满200送50...,你再去修改一下

小菜思考片刻后,在类Order中加入一个属性,如下:

1       public string CashMethod
2       {
3           get;
4           set;
5       }

在流程中加入一个同名的输入参数:CashMethod,如下。

修改流程,添加一个switch活动用于判断:

使用:

 1    Order myOrder = new Order();
 2             ProductItem item1 = new ProductItem();
 3             item1.ProductName = "苹果";
 4             item1.ProductPrice = 5;
 5             item1.ProductNumber = 2;
 6             myOrder.ProductList.Add(item1);
 7 
 8             ProductItem item2 = new ProductItem();
 9             item2.ProductName = "外套";
10             item2.ProductPrice = 200;
11             item2.ProductNumber = 1;
12             myOrder.ProductList.Add(item2);
13             myOrder.CashMethod = "满200返回50";
14             // create dictionary with input arguments for the workflow
15             IDictionary<string, object> input = new Dictionary<string, object> 
16             {
17                 { "Order" , myOrder }
18             };
19 
20             // execute the workflow
21             IDictionary<string, object> output
22                 = WorkflowInvoker.Invoke(new CashRegister3(), input);
23 
24             // Get the TotalAmount returned by the workflow
25             decimal total = (decimal)output["totalPrices"];
26 
27             Console.WriteLine("工作流返回的总金额为:"+total.ToString());
28             Console.Read();

得到如下输出的结果:

小鸟说:“现在,无论你如何改需求,我只要用WF4.0设计器,手动简单地拖拉控件定制流程,再稍稍调整一下代码,就OK了,呵呵。”

大鸟好好表扬了一番小鸟。连说“不错,不错”。

总结:

这篇文章体现了WF一个很大的优点,就是用户能够定制化。文章可以扩展一个形象的流程设计器,这样用户就可以随便修改自己超市的收银规则了。

大话设计模式是写得很精彩,这里我推荐一下,如果文章有点意思,谢谢推荐一下。:)

代码:/Files/zhuqil/WF2Demo.rar

(全文完)


以下为广告部分

您部署的HTTPS网站安全吗?

如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

SSL检测评估

快速了解HTTPS网站安全情况。

安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

SSL证书工具

安装部署SSL证书变得更方便。

SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

SSL漏洞检测

让服务器远离SSL证书漏洞侵扰

TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

转载于:https://www.cnblogs.com/zhuqil/archive/2010/04/16/WF4CashRegister.html

WF4.0实战(二):超市收银软件相关推荐

  1. 超市收银软件测试自学,pos前台收银员培训 免费超市收银软件 视频教程

    作为一个超市店铺收银员,特别是一个新手人员,在刚开始的时候,由于对收银软件不甚了解,常常在使用收银软件的时候,觉得很困惑,不知道如何下手开始.本文以星宇免费超市收银软件为例,一步步教您从安装.设置.入 ...

  2. 超市服务器软件系统软件,星宇超市收银软件服务器

    星宇超市收银软件是款专门为超市收银人员们打造的管理软件.它可以为用户提高高效的收银工作方式,极大的提高了收银效率,非常好用.有喜欢的用户不要错过了. [软件特色] 1.星宇收银软件最新版内含用户管理模 ...

  3. 欧科进销存2013V2(超市收银软件支持国外IVA/REQ)绿色免费体积小

    欧科进销存2013V2(超市收银软件支持国外IVA/REQ)绿色免费体积小 本地下载单机版(2013v2) 本地下载单机版(2012.01v1)   程序完全绿色免费,属于非专业管理软件,适合国内.国 ...

  4. WF4.0实战系列索引

    从WF4.0 betal1出来的时候就开始使用WF4.0,由于资料不多,学习过程也非常艰苦.今年四月份的时候打算写WF4.0实战系列,由于今年是本命年故坚持写了24篇文章.这个系列的文章都有一个特点, ...

  5. 了解:一款造福商家的收银软件来啦!2009年至今,致力服务店主10+年,已有 10,000+ 用户共同选择;简洁易用、安全稳定、服务周到、正版软件!轻便好用,让业绩飞起来新一代收银

    了解:一款造福商家的收银软件来啦! 2009年至今,致力服务店主10+年,已有 10,000+ 用户共同选择:简洁易用.安全稳定.服务周到.正版软件! 轻便好用,让业绩飞起来 新一代收银系统 全面支持 ...

  6. 基于C#的超市收银终端软件--小孩玩具

    基于C#的超市收银终端软件–小孩玩具 需求 小孩玩过家家,希望开一个超市,收银管理部分希望是自动化的. • 所有商品都贴上条形码. • 用条形码扫描枪扫描商品,软件能知道条形码对应的商品名称和价格. ...

  7. 零售连锁管理软件_连锁超市用哪个收银软件好?

    随着经济实力的提升和居民可支配收入水平的增加,零售业市场规模逐步提高:在电子商务和移动支付的促进下,网上零售在日常生活中的渗透率越来越高,占比也明显攀升.未来,传统品牌销售渠道的电商化,将有效的促进零 ...

  8. 云POS连锁版收银系统免费试用 超市连锁收银软件免费注册

    商拓云POS连锁版收银系统免费试用 超市连锁收银软件免费注册,这款也有收银功能,但是除了收银功能,它还有进销存.会员管理.财务管理.电子秤.连锁管理.支持多种支付模式以及对接线上o2o系统的等等商用管 ...

  9. c语言编译收银软件,C语言超市收银系统

    . /* --------------------------------------- 时间:2015-7-1 16:44:21 吴俊龙 C语言专周设计 超市收银系统 --------------- ...

最新文章

  1. 几个主流的Java连接池整理
  2. android lame wav 转 mp3,Android JNI Lame编解码实现wav到MP3的转换
  3. Tomcat中部署后JspFactory报异常的解决方案
  4. mysql 模型_MySQL的架构模型
  5. 基于 PSO 算法解决 TSP 项目
  6. python基于pillow库的简单图像处理
  7. java 封装dll_java调用C#封装的DLL文件
  8. java 从后往前截取_java 字符串截取的实例详解
  9. 关于EasyUI在Datagrid里面将某一列设置为超链接并传递当前行的某一参数传递给打开的对话框。
  10. c++ static静态变量、静态函数
  11. U盘分区,一盘两用,分为启动盘和读写盘
  12. rabbitmq高可用集群搭建踩坑
  13. windows 实现 linux soft link,Linux中的软链接(Soft Link)和硬链接(Hard Link)的区别...
  14. 小米mix2安兔兔html5跑分,小米MIX 2S跑分多少?高通骁龙845安兔兔跑分实测 (全文)...
  15. 面试中的Singleton
  16. PyTorch搭建ANN实现时间序列预测(风速预测)
  17. Android App专项测试-压力测试篇
  18. Windows server 2012 主域+辅域
  19. pubg显示服务器安装失败,绝地求生全军出击怎么安装不了 安装失败解决办法
  20. android百度天气接口api接口,百度天气接口api

热门文章

  1. rap技术原理_有没有什么快速入门rap说唱的方法?
  2. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)
  3. python爬虫数据解析总结
  4. 美和易思山东区域薪火训练营第五期圆满闭营
  5. RandLA-Net
  6. 我国1个都市圈,经过3次扩容,GDP超10万亿,成全国最大都市圈
  7. android音频声调,Android自定义带拼音音调Textview
  8. 如何优雅地通过绿X科技的Web安全漏洞扫描
  9. 记一次java高级工程师面试
  10. PTA(java)九宫格输入法