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

菠菜网站怎样做安全手机自动排名次的软件

菠菜网站怎样做安全,手机自动排名次的软件,wordpress 编辑器引用,wordpress安装 第二步写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 职责链模式(Chain …

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。

职责链模式(Chain of Responsibility)

是一种行为型模式。

目录

一、概述

1.1、直观的理解:

1.2、主要角色:

1.3、描述对象之间关系的UML图:

1.4、适用场景:

二、简单举例

2.1、对象之间的关系用UML图表示如下:

2.2、Java代码如下:


 

一、概述

1、使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
2、职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用,而不需保持它所有的候选接收者的引用。
3、可以随时增加或修改处理一个请求的结构,增强了给对象指派职责的灵活性。

1.1、直观的理解

假设有三个处理请求者,它们组成一个处理链1-》2-》3:

391a137eaf604dd798d7bbb095417ae8.png

当遇到请求后的处理步骤如下:

1a0040b997a94277b76ae43f5b5ff366.png

可以看到,如果前面的处理请求者能够处理此次请求,那么就不会再把请求传递到后面。这很像if-else语句。

1.2、主要角色:

  • 处理请求者:处理请求的抽象类或接口 + 处理请求类
  • 发起请求者

(注:请求链要按需填装配置以后才可以正常使用)

1.3、描述对象之间关系的UML图:

faa56208ed164991b5546ca160d0e173.png

1.4、适用场景:

  • 有多个对象可以处理一个请求,并且具体是哪个对象处理是在运行时自动确定
  • 你想在不明确指定哪个接收者时,向多个对象中的一个提交一个请求
  • 可处理一个请求的对象集合应该被动态指定

二、简单举例

现在有三个处理请求者A、B、C,它们分别能够处理的请求参数的范围为:0到9、10到19、20到29。以处理者请求A为头将他们按顺序串在一起,然后请求发起者给处理者请求A发送4个请求。例子简单就不再详细分析了。你可以把这当做一个模板,然后灵活使用:

2.1、对象之间的关系用UML图表示如下:

b1bccd44b70e4f348a92920ef57fac87.png

2.2、Java代码如下:

处理请求者的抽象类:

abstract class Handler {protected Handler successor;public void setSuccessor(Handler successor) {this.successor = successor;}public abstract void handleRequest(int request);
}

处理请求类A:

public class ConcreteHandlerA extends Handler {@Overridepublic void handleRequest(int request) {if (request >= 0 && request < 10) {System.out.println(this.getClass().getSimpleName() + "处理请求" + request);} else if (this.successor != null) {this.successor.handleRequest(request);}}
}

处理请求类B:

public class ConcreteHandlerB extends Handler {@Overridepublic void handleRequest(int request) {if (request >= 10 && request < 20) {System.out.println(this.getClass().getSimpleName() + "处理请求" + request);} else if (this.successor != null) {this.successor.handleRequest(request);}}
}

处理请求类C:

public class ConcreteHandlerC extends Handler {@Overridepublic void handleRequest(int request) {if (request >= 20 && request < 30) {System.out.println(this.getClass().getSimpleName() + "处理请求" + request);} else if (this.successor != null) {this.successor.handleRequest(request);}}
}

主程序(发起请求的类):

public class Main {public static void main(String[] args) {Handler handlerA = new ConcreteHandlerA();Handler handlerB = new ConcreteHandlerB();Handler handlerC = new ConcreteHandlerC();//串联ABChandlerA.setSuccessor(handlerB);handlerB.setSuccessor(handlerC);//发送请求int[] requests = {1, 14, 25, 36};for (int request : requests) {handlerA.handleRequest(request);}}
}

这里就不再举例了,可以把上面的Java例子复制到你本地,运行main函数试一下加深理解。这些代码都是我自己学习的时候根据一些教材手敲的,不存在bug可以直接运行。

如果觉得本文还不错,就请点个赞给作者一点鼓励吧!如果有建议,也请评论指教和讨论!

d45e9daabb974f29b85a026b7214c2f5.jpeg

 

http://www.yidumall.com/news/37017.html

相关文章:

  • 门业网站模板在线培训管理系统
  • 怎么使自己的网站哈尔滨关键词排名工具
  • 提供搜索引擎优化公司深圳网站seo服务
  • 中国移动网站建设推广软件排行榜前十名
  • phpweb网站标志或广告上传图片不显示宁波网络推广运营公司电话
  • 网站建设创业网络推广有哪些途径
  • 跨境电商网站平台电脑优化工具
  • 官方网站的重要性网站模板设计
  • 有教做路桥质检资料的网站吗新浪新闻疫情
  • wordpress 后台管理风格主题成都seo经理
  • 精致网站赏析地推一手项目平台
  • 南通网站建设外包站长工具大全集
  • 建立网站代码qq群引流推广网站
  • 如何用本机电脑做网站服务器吗公司模板建站
  • 个性网站模板百度手机应用市场
  • 有没有做兼职的好网站太原百度网站快速排名
  • 怎么做网站公司宣传资料上海网站建设联系方式
  • 温州网站建设平台手机360优化大师官网
  • 帝国cms网站制作关键词优化价格
  • wordpress https 不安全优化 seo
  • 东莞网络营销推广运营天津网络推广seo
  • 网站建设与实践心得百度云官方网站
  • 平面设计培训网智推教育seo课程
  • 男人和男人做爰漫画网站低价刷赞网站推广
  • wordpress 自定义分页seo搜索引擎优化心得体会
  • 淄博网站公司网站模版
  • 网易163企业邮箱官网自媒体seo是什么意思
  • 采集的网站怎么做收录如何免费做网站推广的
  • 太原顶呱呱做网站地址电话黑科技引流推广神器怎么下载
  • 北京软件编程培训机构手机系统优化软件