2020年8月7日星期五

无废话设计模式(20)行为型模式

0-前言

  职责链模式定义:

    使多个对象都有机会处理请求,从而避免请求的发送者喝接受者之间的耦合关系。

    将这个对象连成一条链,并沿这条链传递该请求,直到有一个对象处理它为止。

1-实现

1-1、简单UML图

 

 

1-2、代码实现

//1、处理请求的抽象父类abstract class Handler{ //A、设置下一处理节点 protected Handler NestHandler; public void setNestHandler(Handler nestHandler) {  NestHandler = nestHandler; } //B、处理方法 public abstract void HandlerRequest(int count);}//1-1、具体的请求处理者A class HandlerHR extends Handler{ //B、处理方法 @Override public void HandlerRequest(int count) {  if (count<5) //能处理,直接处理  {   System.out.println("才招几个人,HR经理直接就能决定--------------");  }  else //不能处理,交给下一个节点处理  {   if (NestHandler !=null)   {    System.out.println("招聘人数超过5个,HR经理无权定夺,交给下一节点处理:--------------------");    NestHandler.HandlerRequest(count);   }  } }}//1-1、具体的请求处理者Aclass HandlerBoss extends Handler{ //B、处理方法 @Override public void HandlerRequest(int count) {  if (count>5) //能处理  {   System.out.println("招超过5个人,老板我来拍板");  }  else //还不能处理,继续交给链的下一个节点处理....  {  } }}

 

客户端

  Handler hr = new HandlerHR();  Handler boss = new HandlerBoss();  hr.setNestHandler(boss);  hr.HandlerRequest(4);  hr.HandlerRequest(6);

 

运行结果

 

 

2、应用场景简单总结

1、当有多个对象可以处理同一个请求,而具体哪个对象来处理这个请求在运行时刻需要自动判定时;

2、当需要在不明确接受者的情况下向多个对象中某一个提交请求时;

3、当处理一个请求的对象集合应该动态地被确定时

无废话设计模式(20)行为型模式ChannelAdvisor携手拉丁美洲最大电商平台Mercadolibre CBT诚意来深招商!CPC关键词选择imgur解密 | 为什么wish刷单没有什么效果!罢工、暴乱、多国新规,你关心的外贸大事,都在这里!Wish旺季如何爆单?哪些热销品类值得关注?从化有什么地方好玩的?有哪些好玩的地方?怎么去羊城创意产业园?荷包岛在哪里的?荷包岛有什么好玩的?

没有评论:

发表评论

跨境电商资讯:外贸宣传平台有哪些(出口的

现在很多做外贸的人都非常关注 外贸企业怎么推广 ,而现在推广的途径和平台有很多,企业如果都做,成本和时间精力是一个问题,而且并不是所有的推广渠道都是有用的。今天云程网络就来为大家盘点几个有效的外贸推广渠道。 一、海外社交媒体营销 Facebook,领英等海外社交媒体营销在近几年得...