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

建设网站需要多大域名空间企业网站系统

建设网站需要多大域名空间,企业网站系统,做b2b网站赚钱,漳州做网站开发责任链模式的定义是:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。 责任链模式适合于请求需要经过多个处理器,并…

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

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

«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.mmbaike.com/news/88728.html

相关文章:

  • 石家庄做网站电话百度推广业务员电话
  • 世界500强企业国家排名长沙谷歌seo收费
  • 使wordpress支持全局搜索泰安优化关键词排名哪家合适
  • 网站改版建设征求意见书百度快照手机版网页版
  • wordpress wiki 主题福州360手机端seo
  • 宁波做网站千川推广官网
  • 山西省建设局网站网站系统
  • 大型门户网站建设方案苏州整站优化
  • 可以自己画图设计的软件外包优化网站
  • php商城网站建设多少钱广州网站建设方案优化
  • 承德网站制作报价360广告联盟平台
  • 泉州晋江网站建设费用外包平台
  • 网站seo和sem是什么意思教师遭网课入侵直播录屏曝光广场舞
  • 广州交易网站建设seo岗位职责
  • 信息免费建站网站有哪些seo免费培训教程
  • 苏州建站仿站企业网站怎么注册官网
  • 自己怎做网站后台桂林seo排名
  • 做网页跳转网站学生个人网页制作教程
  • 域名防红在线生成杭州网站seo
  • 专业建站报价工具刷网站排刷排名软件
  • ASP.NET2.0网站开发全程解析千峰培训出来好就业吗
  • 免费搭建网站 域名网络销售公司经营范围
  • 重庆专业网站推广平台搜索排名优化
  • 教育网站设计seo营销服务
  • 可以做免费广告的网站怎么才能让百度收录网站
  • 凡科做的网站推效果大连做优化网站哪家好
  • 家政服务网站建设2021最近最火的关键词
  • 深圳罗湖做网站公司cnn头条新闻
  • 软文推广例子北京网站优化步骤
  • 做网站多少钱啊网络新闻发布平台