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

网站如何做监测链接.net做网站c#

网站如何做监测链接,.net做网站c#,湖州吴兴建设局网站,干净简约高端的网站责任链模式的定义是:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 责任链模式适合于请求需要经过多个处理器,并…

责任链模式的定义是:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。

责任链模式适合于请求需要经过多个处理器,并被其中一个或多个处理器执行。

«interface»
Handler
+setNext(Handler)
+handler(Request)
ConcreteHandler
next:Handler
+setNext(Handler)
+handler(Request)

代码实现:

// 抽象处理器  
public abstract class Handler {  private Handler next;  // 初始化处理链  public static Handler init(Handler... handlers) {  Handler first = handlers[0];  for (int i = 1; i < handlers.length; i++) {  first.setNext(handlers[i]);  first = handlers[i];  }  return handlers[0];  }  public void setNext(Handler handler) {  next = handler;  }  // 处理当前请求  public abstract void handle(Request request);  //处理下一个请求  protected void nextHandle(Request request) {  if (next != null) {  next.handle(request);  }  }  
}
public class HandlerA extends Handler {  @Override  public void handle(Request request) {  request.addName("HandlerA");  nextHandle(request);  }  
}public class HandlerB extends Handler {  @Override  public void handle(Request request) {  request.addName("HandlerB");  nextHandle(request);  }  
}
// 请求
@Data  
public class Request {  private final List<String> names = new ArrayList<>();  public void addName(String name) {  names.add(name);  }  
}
public static void main(String[] args) {  Handler handler = Handler.init(new HandlerA(), new HandlerB());  Request request = new Request();  handler.handle(request);  System.out.println(request.getNames());  
}  

上面的例子跟链表相像,一个处理器保持有下一个处理器的引用。

另一种实现变体是处理器的引用统一由处理器链管理,处理器链决定处理的顺序。

public interface Handler {  void handle(Request request,HandlerChain chain);  
}
public class HandlerA implements Handler{  @Override  public void handle(Request request, HandlerChain chain) {  request.addName("HandlerA");  chain.handle(request);  }  
}public class HandlerB implements Handler{  @Override  public void handle(Request request, HandlerChain chain) {  request.addName("HandlerB");  chain.handle(request);  }  
}
public class HandlerChain {  private List<Handler> handlers = new ArrayList<>();  // 当前指针  int cur=0;  public void addHandler(Handler handler) {  handlers.add(handler);  }  public void handle(Request request){  if(cur>=handlers.size()){  return;  }  Handler handler = handlers.get(cur++);  handler.handle(request, this);  }  
}
public static void main(String[] args) {  HandlerChain chain=new HandlerChain();  chain.addHandler(new HandlerA());  chain.addHandler(new HandlerB());  Request request=new Request();  chain.handle(request);  System.out.println(request.getNames());  
}

责任链变化的地方是处理的流程。

优点是:

  1. 处理的顺序可以随时修改
  2. 方便新增或删除处理者
http://www.yayakq.cn/news/420297/

相关文章:

  • 企业网站设计方式有哪些wordpress回顶部
  • 网站建设呼和浩特建网站不想用怎样撤销
  • 平凉网站建设平凉h5创建网站
  • 做网站计入什么科目济南网站建设方案书范文
  • 一站式网站设计wordpress分享后可见
  • 中建南方建设集团官方网站奢侈品网站 方案
  • 做第三方库网站北京网站建设的价格天
  • 做国际贸易需要网站吗服务器搭建vps教程
  • 海南棋牌网站建设无代码做网站
  • 旅游公司网站开发网站会员注册模板
  • 高端网站建设苏州网站群管理平台
  • 网站由哪几个部分组成营销技巧培训
  • 前程无忧网站开发待遇怎么样做理财的网站有哪些
  • 好网站建设公司报价模仿wordpress主题
  • 怎么做淘宝客网站优化电子商务专业怎么样
  • 怎么查网站服务器恩施市建设银行网站
  • 建设通相似的网站分销商平台
  • 惠州建设局网站首页网站外链建设常用字
  • 深圳市seo网站设计多少钱泰安网络营销网站建设
  • 广州婚恋网站排名福州建网站
  • 外销网站怎么做的自己可以做网站吗
  • 长治在百度做个网站多少钱直播软件推荐
  • 通栏 网站模板六安网络上
  • 电商网站规划论文九江茶叶网站建设
  • 网站建设是什么专业啊怎么做服装外贸网站
  • dede小游戏php网站源码iis做网站文件下载
  • 长沙做手机网站建设免费网站报价单怎么做
  • 有个网站做彩盒的网页设计网站的设计与规划
  • 免费的毕业设计网站建设京东网站建设流程和结构图
  • 长春老火车站图片青岛网站推广怎么选