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

网站统计插件网站建设 四川

网站统计插件,网站建设 四川,网站 做百度推广有没有效果怎么样,申请网站空间就是申请域名介绍 责任链模式是一种行为型设计模式#xff0c;用于将多个处理器对象组织成一条链#xff0c;并沿着链传递某个请求#xff0c;直到有一个处理器对象能够处理该请求为止。它的核心是将请求和处理器对象解耦#xff0c;让请求在不知道哪个处理器对象能够处理它的情况下用于将多个处理器对象组织成一条链并沿着链传递某个请求直到有一个处理器对象能够处理该请求为止。它的核心是将请求和处理器对象解耦让请求在不知道哪个处理器对象能够处理它的情况下能够被正确地处理。 责任链模式的主要优点包括 1.解耦请求和处理器对象责任链模式将请求和处理器对象解耦让请求在不知道哪个处理器对象能够处理它的情况下能够被正确地处理。这样可以增加系统的灵活性和可扩展性。 2.简化对象之间的耦合关系责任链模式将多个处理器对象组织成一条链每个处理器对象只需要关注自己的处理逻辑不需要关注其他处理器对象的处理逻辑从而简化了对象之间的耦合关系。 3.可以动态地增加或修改处理器对象由于责任链模式将多个处理器对象组织成一条链因此可以动态地增加或修改处理器对象从而改变处理器对象的顺序或增加新的处理器对象以满足不同的业务需求。 4.可以避免请求被漏处理或重复处理由于责任链模式会沿着链传递请求直到有一个处理器对象能够处理该请求为止因此可以避免请求被漏处理或重复处理的问题。 5.可以灵活地处理请求由于责任链模式可以根据不同的业务需求组织不同的处理器对象因此可以灵活地处理各种不同类型的请求。 总之责任链模式可以将多个处理器对象组织成一条链提高系统的灵活性和可扩展性简化对象之间的耦合关系避免请求被漏处理或重复处理可以灵活地处理各种不同类型的请求。 Apache Commons Chain 是一组轻量级的组件可以用于实现责任链模式。这里给出一个基于 Apache Commons Chain 的责任链模式实现的示例 代码 首先需要定义一个 Command 接口表示处理器对象责任链中的一个节点 public interface Command {boolean execute(Context context) throws Exception; } 其中execute 方法用于执行某个处理逻辑返回一个布尔值表示该处理器对象是否能够处理请求。 然后需要定义一个 AbstractCommand 抽象类实现了 Command 接口并提供了一些通用的方法 public abstract class AbstractCommand implements Command {protected abstract boolean doExecute(Context context) throws Exception;Overridepublic boolean execute(Context context) throws Exception {boolean result doExecute(context);if (!result) {return false;}return executeNext(context);}protected boolean executeNext(Context context) throws Exception {Command nextCommand getNextCommand(context);if (nextCommand ! null) {return nextCommand.execute(context);}return true;}protected Command getNextCommand(Context context) {return null;} } AbstractCommand 抽象类中提供了 doExecute 抽象方法表示具体的处理逻辑。在 execute 方法中首先调用 doExecute 方法执行处理逻辑如果处理成功则调用 executeNext 方法继续执行下一个处理器对象。executeNext 方法会调用 getNextCommand 方法获取下一个处理器对象如果存在则调用其 execute 方法处理请求。 最后可以定义一些具体的处理器对象节点继承 AbstractCommand 抽象类并实现其方法 public class ValidateUserCommand extends AbstractCommand {Overrideprotected boolean doExecute(Context context) throws Exception {// 执行验证用户的逻辑return true;}Overrideprotected Command getNextCommand(Context context) {// 返回下一个处理器对象return new CheckInventoryCommand();} }public class CheckInventoryCommand extends AbstractCommand {Overrideprotected boolean doExecute(Context context) throws Exception {// 执行检查库存的逻辑return true;}Overrideprotected Command getNextCommand(Context context) {// 返回下一个处理器对象return new PlaceOrderCommand();} }public class PlaceOrderCommand extends AbstractCommand {Overrideprotected boolean doExecute(Context context) throws Exception {// 执行下单的逻辑return true;}Overrideprotected Command getNextCommand(Context context) {// 返回下一个处理器对象return null;} } 在这个示例中定义了三个具体的处理器对象分别用于验证用户、检查库存和下单。这三个处理器对象被组织成一条链在 execute 方法中沿着链传递请求直到有一个处理器对象能够处理该请求为止。 最后可以使用 Chain 工具类创建责任链对象并将请求传递给该责任链对象 Chain chain new ChainBase(); chain.addCommand(new ValidateUserCommand()); chain.addCommand(new CheckInventoryCommand()); chain.addCommand(new PlaceOrderCommand());Context context new ContextBase(); // 设置请求参数 context.put(order, new Order()); // 执行责任链 boolean result chain.execute(context);
http://www.yutouwan.com/news/105651/

相关文章:

  • 网站建设公司接单郑州手机网站推广公司
  • 做课展网站商标设计网排行
  • wordpress同步发布优化好的网站
  • 如何看到网站做哪些关键字此博客由wordpress制作
  • codeigniter 手机网站开发2018年政务公开与网站建设总结
  • 网站开发进入腾信职位菏泽注册公司流程和费用
  • 建网站的公司湖南送变电建设公司 网站
  • 有哪些好的做h5的网站哪个网站可以做英文兼职
  • 现如今网站开发用什么框架什么软件可以在手机上做装修设计
  • eclips怎么做网站wordpress上传照片
  • 做资讯网站怎么挣钱力洋深圳做网站公司
  • 医疗机构网站模板购物网站有哪些?
  • 西安知名网站开发的公司平面设计作品图片大全
  • 网站性能需求品牌营销策划方案报价
  • 佛山网站建设 骏域网站西安seo网站排名优化公司
  • 网站建设技术支持方案东莞外贸网站
  • 网站建设费用明细制作app开发定制外包24
  • 个人网站开发人员免费psd模板素材
  • 宁波网站建设在线网站的数据库有什么用
  • 网站建设怎么添加评论谷歌浏览器 安卓下载2023版
  • 引流量的网站个人网站经营性备案查询
  • 给人做ppt的网站网上哪里有辅导高考生做难题的网站
  • orchid wordpress常州做网站优化
  • 临清网站优化公司做网站需要准备什么东西
  • 定制棺材网站辽宁省工程建设信息网
  • 百度收录网站链接入口如何将自己做的网站传到网上
  • 上海网站建设 网站开湖南众诚建设网站
  • 中国建设官方网站登录建设企业官方网站官网
  • 备案的网站名称能重复备案吗做网站挣钱快又多
  • 淮北市重点工程建设局网站国内个人网站设计欣赏