当前位置: 首页 > news >正文

政府档案网站建设/宁波网站关键词优化代码

政府档案网站建设,宁波网站关键词优化代码,做盗版小说网站犯法吗,做视频网站用哪个cms责任链模式:请求从链中的一个对象传递到下一个对象,直到请求被响应为止。通过这种方式在对象之间去除耦合。 用途:请假审批、采购审批等。 案例介绍:以公司采购东西为例子来实现责任链模式。公司规定,采购架构总价在…

责任链模式:请求从链中的一个对象传递到下一个对象,直到请求被响应为止。通过这种方式在对象之间去除耦合。

用途:请假审批、采购审批等。

案例介绍:以公司采购东西为例子来实现责任链模式。公司规定,采购架构总价在1万之内,经理级别的人批准即可,总价大于1万小于2万5的则还需要副总进行批准,总价大于2万5小于10万的需要还需要总经理批准,而大于总价大于10万的则需要组织一个会议进行讨论

审批类: 

    /// <summary>/// 审批实体类/// </summary>internal class Approver{#region 数据库对应字段/// <summary>/// 用户Id/// </summary>public string UId { get; set; }/// <summary>/// 用户名/// </summary>public string Name { get; set; }/// <summary>/// 下一个审批Id/// </summary>public string NextApproverId { get; set; }/// <summary>/// 当前最多审批的金额/// </summary>public int Amount { get; set; }#endregionpublic Approver NextApprover { get;private set; }void GetNextApprover(){if (!string.IsNullOrWhiteSpace(NextApproverId)){// 查找数据库NextApprover = TestData.GetDataWithUId(NextApproverId);}}public virtual void ProcessRequest(PurchaseRequest request){GetNextApprover();if (request.Amount <= Amount){Console.WriteLine($"[{Name}] 批准了购买 [{request.ProductName}] 的请求");}else{if (NextApprover == null)Console.WriteLine($"需要开会讨论购买 [{request.ProductName}]");}if (NextApprover != null){NextApprover.ProcessRequest(request);}}}

 采购类:

    /// <summary>/// 采购请求/// </summary>internal class PurchaseRequest{// 金额public double Amount { get; set; }// 产品名字public string ProductName { get; set; }public PurchaseRequest(double amount, string productName){Amount = amount;ProductName = productName;}}

测试数据:

internal class TestData{static List<Approver> approvers;static TestData(){approvers = new List<Approver>(3);Approver approver1 = new Approver(){UId = Guid.NewGuid().ToString(),Name = "王总",Amount = 100000};Approver approver2 = new Approver(){UId = Guid.NewGuid().ToString(),Name = "李副总",NextApproverId = approver1.UId,Amount = 25000};Approver approver3 = new Approver(){UId = Guid.NewGuid().ToString(),Name = "孙经理",NextApproverId = approver2.UId,Amount = 10000};approvers.Add(approver1);approvers.Add(approver2);approvers.Add(approver3);}internal static List<Approver> GetDatas(){return approvers;}internal static List<Approver> GetDatas(Func<Approver, bool> func){return approvers.Where(func).ToList();}internal static Approver GetDataWithUId(string uid){return GetData((t) => t.UId == uid);}internal static Approver GetData(Func<Approver, bool> func){return approvers.FirstOrDefault(func);}}

测试用例:

public static void Test(){// 商品类PurchaseRequest purchase = new PurchaseRequest(20000,"电脑");PurchaseRequest purchase2 = new PurchaseRequest(2000, "笔");PurchaseRequest purchase3 = new PurchaseRequest(30000, "手机");PurchaseRequest purchase4 = new PurchaseRequest(110000, "3台电脑");// 需要审批的商品PurchaseRequest NeedPurchase = purchase4;// 根据金额筛选出权限最低的人var firstData = TestData.GetDatas().Where(t=>t.Amount>= NeedPurchase.Amount).OrderBy(t => t.Amount).FirstOrDefault();if (firstData == null)firstData = TestData.GetDatas().OrderByDescending(t => t.Amount).LastOrDefault();// 开始审批firstData.ProcessRequest(NeedPurchase);}

 

 

 

 

 

 

http://www.jmfq.cn/news/5318893.html

相关文章:

  • 政和县建设局网站公告/搜索引擎营销的主要方法包括
  • 无锡时光科技网站建设公司怎么样/免费刷seo
  • 第三方商城网站建设/抖音seo怎么做的
  • 城北区建设局网站/文娱热搜榜
  • 学网站建设 去哪里/tool站长工具
  • 分阶段建设网站/宁德市政府
  • 寻找富阳网站建设/手机优化大师为什么扣钱
  • 网站建设丂金手指科杰/一键优化清理手机
  • 企业建设网站需要服务器吗/网络营销包括几个部分
  • 建设银行 企业网站/企业如何进行网站推广
  • 贵港市城乡建设委员会网站/武汉seo网络优化公司
  • 免费图片网站建设/网络营销公司排行榜
  • 濮阳中强网站建设/百度认证证书
  • 上海住房和城乡建设委员会门户网站/推广普通话的意义论文
  • 网站建设内容保障工作个人总结/软文广告
  • 惠州网站小程序建设点/被国家禁止访问的网站怎么打开
  • 政府网站集约化建设通知/链接提交
  • 电子兼职网站建设/太原seo推广外包
  • 徽文化网站建设方案书/软件商店安装
  • 香港网站建设的网络公司/百度地图导航网页版
  • 贵州省和城乡建设厅官方网站/西安网站seo价格
  • 网站正在建设中页面的英文/外包网络推广公司推广网站
  • 龙华网站 建设信科网络/计算机培训机构排名
  • 班级网站建设模板/seo店铺描述
  • 杭州公司网站建设哪家好/百度信息流推广是什么意思
  • 珙县网站建设/福州模板建站哪家好
  • 腾讯云网站建设教学视频教程/站长之家最新网站
  • 青岛网站建设商家/怎么自己制作网页
  • 游戏网站建设方案/seo做关键词怎么收费的
  • 天津网站建设公司/广州seo网站公司