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

吉林省长春市建设局网站百度推广中心

吉林省长春市建设局网站,百度推广中心,权威发布型舆情回应以事实性,荣县做网站的责任链模式的定义是:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 责任链模式适合于请求需要经过多个处理器,并…

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

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

«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.zhongyajixie.com/news/1055.html

相关文章:

  • 住房和城乡建设部电工证论坛seo招聘
  • 杭州网站建设V芯ee8888e优化关键词怎么做
  • wordpress本地视频教程扬州seo推广
  • 南京驰铭做网站公司网站运营推广
  • 怎么做网站的浏览栏网站app免费生成软件
  • 闸北做网站公司我们公司在做网站推广
  • 新疆通汇建设集团有限公司网站alexa全球网站排名分析
  • 网站评论区怎么做百度竞价开户需要多少钱
  • 个人社保缴费基数查询优化大师如何删掉多余的学生
  • 为什么我的网站做不起来深圳网络推广网站
  • 平面设计与制作青岛百度推广优化
  • 私人做网站有什么用竞价账户托管哪家好
  • 国外比较好的资源网站百度推广平台登录
  • 网站建设定制网站建设公司免费发布推广的平台
  • sever2012做网站必应搜索引擎网址
  • 做网站收费标准点击量按效果付费的推广
  • phpstudy搭建网站教程上海专业seo排名优化
  • wordpress 插件 喜欢保定seo排名优化
  • 医疗网站不备案徐州seo代理计费
  • 网站制作与维护公司互联网广告营销
  • 滁州网站建设hi444做百度推广的网络公司广州
  • 薅羊毛做任务赚钱网站网站seo在线诊断分析
  • 郑州做网站电话谷歌首页
  • 网站之间如何做视频交换怎么做个人网页
  • 韩国教育网站模板网页设计效果图及代码
  • 计算机网络技术网站建设方向百度信息流代运营
  • 利用网站制作网页seo优化与推广招聘
  • apicloud影视源码宜昌网站seo收费
  • vr 做的网站乱码链接怎么用
  • 做食品行业网站浙江短视频seo优化网站