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

中国沈阳网站在哪里下载重庆传媒公司前十名

中国沈阳网站在哪里下载,重庆传媒公司前十名,临沂做网站wyjzgzs,wordpress 多说 社交登陆文章目录 现实实例反例优化异步职责链 职责链模式在 C# 中是常见的#xff0c;他的定义是#xff1a;使多个对象都有机会处理请求#xff0c;从而避免发送者和请求者之间的耦合关系#xff0c;将对象连成一条链并传递该请求#xff0c;直到有一个对象处理它为止 现实实例… 文章目录 现实实例反例优化异步职责链 职责链模式在 C# 中是常见的他的定义是使多个对象都有机会处理请求从而避免发送者和请求者之间的耦合关系将对象连成一条链并传递该请求直到有一个对象处理它为止 现实实例 上公交车要把硬币递给后排的售票员现在应该不常见了运气好第一个人就是售票员负责要一直传递直到找到售票员 请求发送者只知道链中的第一个节点弱化了发送者和接受者之间的强联系如果不使用职责链模式我们只能知道谁是售票员才能把硬币给他 反例 假设你正在开发一个在线购物网站其中有一个订单处理系统。在该系统中订单需要经过一系列的验证和处理步骤包括库存检查、支付验证、优惠券验证和物流处理 如果是一个程序员新手他有可能实现这样的代码每个步骤都硬编码在里面难以扩展和优化 public class OrderProcessor {public void ProcessOrder(Order order){// 库存检查bool stockAvailable CheckStock(order);if (!stockAvailable){Console.WriteLine(库存不足);return;}// 支付验证bool paymentValidated ValidatePayment(order);if (!paymentValidated){Console.WriteLine(支付验证失败);return;}// 优惠券验证bool couponValidated ValidateCoupon(order);if (!couponValidated){Console.WriteLine(优惠券验证失败);return;}// 物流处理ProcessShipping(order);}private bool CheckStock(Order order){// 检查库存逻辑// ...}private bool ValidatePayment(Order order){// 支付验证逻辑// ...}private bool ValidateCoupon(Order order){// 优惠券验证逻辑// ...}private void ProcessShipping(Order order){// 物流处理逻辑// ...} }public class Order {// 订单数据// ... }优化 这是使用职责链模式优化的代码把请求解耦分给不同的 Handler 执行并通过设置 Next Handler 找到下一个职责任务这就拆分了不同的执行节点变得可扩展了 public abstract class OrderHandler {protected OrderHandler NextHandler;public void SetNextHandler(OrderHandler handler){NextHandler handler;}public abstract void ProcessOrder(Order order); }public class StockCheckHandler : OrderHandler {public override void ProcessOrder(Order order){bool stockAvailable CheckStock(order);if (!stockAvailable){Console.WriteLine(库存不足);return;}if (NextHandler ! null){NextHandler.ProcessOrder(order);}}private bool CheckStock(Order order){// 检查库存逻辑// ...} }public class PaymentValidationHandler : OrderHandler {public override void ProcessOrder(Order order){bool paymentValidated ValidatePayment(order);if (!paymentValidated){Console.WriteLine(支付验证失败);return;}if (NextHandler ! null){NextHandler.ProcessOrder(order);}}private bool ValidatePayment(Order order){// 支付验证逻辑// ...} }public class CouponValidationHandler : OrderHandler {public override void ProcessOrder(Order order){bool couponValidated ValidateCoupon(order);if (!couponValidated){Console.WriteLine(优惠券验证失败);return;}if (NextHandler ! null){NextHandler.ProcessOrder(order);}}private bool ValidateCoupon(Order order){// 优惠券验证逻辑// ...} }public class ShippingHandler : OrderHandler {public override void ProcessOrder(Order order){// 物流处理逻辑// ...} }// 在客户端代码中构建职责链 public class Client {public void Main(){OrderHandler stockCheckHandler new StockCheckHandler();OrderHandler paymentValidationHandler new PaymentValidationHandler();OrderHandler couponValidationHandler new CouponValidationHandler();OrderHandler shippingHandler new ShippingHandler();stockCheckHandler.SetNextHandler(paymentValidationHandler);paymentValidationHandler.SetNextHandler(couponValidationHandler);couponValidationHandler.SetNextHandler(shippingHandler);OrderProcessor orderProcessor new OrderProcessor(stockCheckHandler);Order order new Order();orderProcessor.ProcessOrder(order);} }public class OrderProcessor {private OrderHandler _orderHandler;public OrderProcessor(OrderHandler orderHandler){_orderHandler orderHandler;}public void ProcessOrder(Order order){_orderHandler.ProcessOrder(order);} }public class Order {// 订单数据// ... }异步职责链 每个具体的处理器类都可以异步执行相应的任务并将结果传递给下一个处理器。通过使用异步职责链模式将注册过程的不同步骤解耦并异步处理提高性能和响应速度 public abstract class RegistrationHandler {protected RegistrationHandler NextHandler;public void SetNextHandler(RegistrationHandler handler){NextHandler handler;}public abstract Taskbool ProcessAsync(RegistrationRequest request); }public class UsernameValidationHandler : RegistrationHandler {public override async Taskbool ProcessAsync(RegistrationRequest request){// 验证用户名是否有效await Task.Delay(1000); // 模拟异步操作bool isValid !string.IsNullOrEmpty(request.Username);Console.WriteLine(Username validation completed);// 将结果传递给下一个处理器if (NextHandler ! null){return await NextHandler.ProcessAsync(request) isValid;}return isValid;} }public class EmailValidationHandler : RegistrationHandler {public override async Taskbool ProcessAsync(RegistrationRequest request){// 验证电子邮件是否有效await Task.Delay(1000); // 模拟异步操作bool isValid !string.IsNullOrEmpty(request.Email);Console.WriteLine(Email validation completed);// 将结果传递给下一个处理器if (NextHandler ! null){return await NextHandler.ProcessAsync(request) isValid;}return isValid;} }public class AccountCreationHandler : RegistrationHandler {public override async Taskbool ProcessAsync(RegistrationRequest request){// 创建用户账户await Task.Delay(1000); // 模拟异步操作bool isSuccess true; // 假设账户创建成功Console.WriteLine(Account creation completed);// 将结果传递给下一个处理器if (NextHandler ! null){return await NextHandler.ProcessAsync(request) isSuccess;}return isSuccess;} }
http://www.tj-hxxt.cn/news/139236.html

相关文章:

  • 免费家政网站建设苏州建设项目备案网站
  • 信息网站 模板wordpress禁用react
  • 云浮源峰网站建设工作室地址苏州建设监督网站
  • 网站不备案可以用吗网站建设需求
  • 深圳做微信商城网站建设网站整体风格
  • 马尾区建设局网站室内设计就业前景如何
  • 山东高端网站建设无锡做网站设计的公司
  • 西樵网站制作南宁网络公司设计
  • 怎么做网站优企业网站设计开发
  • 网站群建设方案做seo前景怎么样
  • 广东哪有做网赌网站网站后台更新 前台看不到
  • 网站开发 票种朝阳网站建设开发
  • 网站建设需要什么研究条件WordPress修改模板相对路径
  • 做游戏自媒体视频网站大连建设银行网站
  • 免费建网站平台哪个好品牌策划大赛作品
  • 东莞网络推广建站没有网站 淘宝客
  • 安顺住房和城乡建设部网站折页彩页设计
  • 进度跟踪网站开发国内好的网站建设
  • 专门做旅游的视频网站如何编程软件
  • 网站维护提示新品发布会的目的
  • 有网站代码 如何建设网站衡水哪儿专业做网站
  • 云霄建设局网站网络推广渠道和方式
  • 网站模板样式网站开发如何收费
  • 做源码网站违法吗线上销售有哪些渠道
  • 网站搭建中转网站怎么做超链接
  • 网站建设 招聘需求嘉兴网站建设电话
  • 网站服务器分流怎么做电子商务网站开发方式
  • 建设银行网站每天几点更新帝国cms门户网站模板
  • 靓号网站开发烟台微网站
  • 如何查看网站页面大小网站运营风险分析