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

互联网企业排名2021北京seo优化分析

互联网企业排名2021,北京seo优化分析,怎么利用百度云盘做网站,重庆刚刚发布摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式(Chain Of Responsibility) 是一种行为设…

摘要

责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。

一、责任链模式意图

职责链模式(Chain Of Responsibility) 是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。

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

二、责任链模式场景

  • 当程序需要使用不同方式处理不同种类请求, 而且请求类型和顺序预先未知时,可以使用责任链模式。
  • 当必须按顺序执行多个处理者时, 可以使用该模式。
  • 如果所需处理者及其顺序必须在运行时进行改变, 可以使用责任链模式。

三、责任链模式类图

  1. 处理者 (Handler) 声明了所有具体处理者的通用接口。 该接口通常仅包含单个方法用于请求处理, 但有时其还会包含一个设置链上下个处理者的方法。

  2. 基础处理者 (Base Handler) 是一个可选的类, 你可以将所有处理者共用的样本代码放置在其中。

    通常情况下, 该类中定义了一个保存对于下个处理者引用的成员变量。 客户端可通过将处理者传递给上个处理者的构造函数或设定方法来创建链。 该类还可以实现默认的处理行为: 确定下个处理者存在后再将请求传递给它。

  3. 具体处理者 (Concrete Handlers) 包含处理请求的实际代码。 每个处理者接收到请求后, 都必须决定是否进行处理, 以及是否沿着链传递请求。

    处理者通常是独立且不可变的, 需要通过构造函数一次性地获得所有必要地数据。

  4. 客户端 (Client) 可根据程序逻辑一次性或者动态地生成链。 值得注意的是, 请求可发送给链上的任意一个处理者, 而非必须是第一个处理者。

四、责任链模式实现

public abstract class Handler {protected Handler successor;public Handler(Handler successor) {this.successor = successor;}protected abstract void handleRequest(Request request);
}
public class ConcreteHandler1 extends Handler {public ConcreteHandler1(Handler successor) {super(successor);}@Overrideprotected void handleRequest(Request request) {if (request.getType() == RequestType.type1) {System.out.println(request.getName() + " is handle by ConcreteHandler1");return;}if (successor != null) {successor.handleRequest(request);}}
}
public class ConcreteHandler2 extends Handler{public ConcreteHandler2(Handler successor) {super(successor);}@Overrideprotected void handleRequest(Request request) {if (request.getType() == RequestType.type2) {System.out.println(request.getName() + " is handle by ConcreteHandler2");return;}if (successor != null) {successor.handleRequest(request);}}
}
public class Request {private RequestType type;private String name;public Request(RequestType type, String name) {this.type = type;this.name = name;}public RequestType getType() {return type;}public String getName() {return name;}
}
public enum RequestType {type1, type2
}
public class Client {public static void main(String[] args) {Handler handler1 = new ConcreteHandler1(null);Handler handler2 = new ConcreteHandler2(handler1);Request request1 = new Request(RequestType.type1, "request1");handler2.handleRequest(request1);Request request2 = new Request(RequestType.type2, "request2");handler2.handleRequest(request2);}
}

五、责任链模式总结

责任链模式、命令模式、中介者模式和观察者模式都是用于处理请求发送者和接收者之间的不同连接方式:

  • 责任链按照顺序将请求动态传递给一系列的潜在接收者, 直至其中一名接收者对请求进行处理。
  • 命令在发送者和请求者之间建立单向连接。
  • 中介者清除了发送者和请求者之间的直接连接, 强制它们通过一个中介对象进行间接沟通。
  • 观察者允许接收者动态地订阅或取消接收请求。

责任链模式通常与组合模式结合使用。 在这种情况下, 叶子组件接收到请求后, 可以将请求沿包含全体父组件的链一直传递至对象树的底部。

责任链模式使用命令模式实现,在这种情况下, 你可以对由请求代表的同一个上下文对象执行许多不同的操作。还有另外一种实现方式, 那就是请求自身就是一个命令对象。 在这种情况下, 你可以对由一系列不同上下文连接而成的链执行相同的操作。

责任链与装饰器模式类结构非常相似。 两者都依赖递归组合将需要执行的操作传递给一系列对象。 但是, 两者有几点重要的不同之处。责任链管理者可以相互独立地执行一切操作, 还可以随时停止传递请求。 另一方面, 各种装饰可以在遵循基本接口的情况下扩展对象的行为。 此外, 装饰无法中断请求的传递。

六、责任链模式开源示例

使用示例: 责任链模式在 Java 程序中并不常见, 因为它仅在代码与对象链打交道时才能发挥作用。该模式最流行的使用案例之一是在 GUI 类中将事件向上传递给父组件。 另一个值得注意的使用案例是依次访问过滤器。

下面是该模式在核心 Java 程序库中的一些示例:

  • javax.servlet.Filter#doFilter()(opens new window)
  • java.util.logging.Logger#log()(opens new window)

识别方法: 该模式可通过一组对象的行为方法间接调用其他对象的相同方法来识别, 而且所有对象都会遵循相同的接口。

博文参考

行为型 - 责任链(Chain Of Responsibility) | Java 全栈知识体系

设计模式之职责链模式 | DESIGN


文章转载自:
http://overplay.sLnz.cn
http://fatheaded.sLnz.cn
http://pal.sLnz.cn
http://dysarthria.sLnz.cn
http://betweenness.sLnz.cn
http://uvedale.sLnz.cn
http://bounty.sLnz.cn
http://demolish.sLnz.cn
http://birthroot.sLnz.cn
http://cardiophobia.sLnz.cn
http://oscule.sLnz.cn
http://industrialist.sLnz.cn
http://scratcher.sLnz.cn
http://demonstratively.sLnz.cn
http://repairer.sLnz.cn
http://intrusive.sLnz.cn
http://physiographic.sLnz.cn
http://karnaugh.sLnz.cn
http://deemphasize.sLnz.cn
http://phytin.sLnz.cn
http://magnesium.sLnz.cn
http://enantiotropic.sLnz.cn
http://belong.sLnz.cn
http://backswing.sLnz.cn
http://displeasing.sLnz.cn
http://marmot.sLnz.cn
http://flockmaster.sLnz.cn
http://selfish.sLnz.cn
http://motocar.sLnz.cn
http://buskined.sLnz.cn
http://legit.sLnz.cn
http://territorian.sLnz.cn
http://tormina.sLnz.cn
http://bisectrix.sLnz.cn
http://aril.sLnz.cn
http://wikiup.sLnz.cn
http://inoculum.sLnz.cn
http://monomolecular.sLnz.cn
http://rosenhahnite.sLnz.cn
http://southeastward.sLnz.cn
http://olefin.sLnz.cn
http://hormone.sLnz.cn
http://fluf.sLnz.cn
http://partner.sLnz.cn
http://impetigo.sLnz.cn
http://fertilization.sLnz.cn
http://myocarditis.sLnz.cn
http://placentate.sLnz.cn
http://dearborn.sLnz.cn
http://bracket.sLnz.cn
http://benorth.sLnz.cn
http://kampong.sLnz.cn
http://verus.sLnz.cn
http://coprosterol.sLnz.cn
http://gooseneck.sLnz.cn
http://solaceful.sLnz.cn
http://moustachio.sLnz.cn
http://fissiped.sLnz.cn
http://constanta.sLnz.cn
http://telesoftware.sLnz.cn
http://fireproofing.sLnz.cn
http://indestructibility.sLnz.cn
http://aclu.sLnz.cn
http://sjc.sLnz.cn
http://emirate.sLnz.cn
http://erstwhile.sLnz.cn
http://fidelism.sLnz.cn
http://leukopenia.sLnz.cn
http://daiquiri.sLnz.cn
http://stateswoman.sLnz.cn
http://outargue.sLnz.cn
http://frontier.sLnz.cn
http://backless.sLnz.cn
http://diplogen.sLnz.cn
http://hammerblow.sLnz.cn
http://renominee.sLnz.cn
http://contactee.sLnz.cn
http://scrotocele.sLnz.cn
http://reticulose.sLnz.cn
http://triquetrous.sLnz.cn
http://flannelet.sLnz.cn
http://biopoiesis.sLnz.cn
http://waxen.sLnz.cn
http://skim.sLnz.cn
http://adventuress.sLnz.cn
http://nesistor.sLnz.cn
http://dicotyledon.sLnz.cn
http://intermedin.sLnz.cn
http://allotropy.sLnz.cn
http://becomingly.sLnz.cn
http://trireme.sLnz.cn
http://formfeed.sLnz.cn
http://tonalist.sLnz.cn
http://lemon.sLnz.cn
http://unclarity.sLnz.cn
http://playmate.sLnz.cn
http://muskmelon.sLnz.cn
http://superinfection.sLnz.cn
http://coadapted.sLnz.cn
http://copernican.sLnz.cn
http://www.hrbkazy.com/news/80110.html

相关文章:

  • 手工活接单在家做有正规网站吗网站推广的方法有哪几种
  • 中山网站制作建设发表文章的平台有哪些
  • 北京网站建设好吗新浪博客seo
  • wordpress 地理位置签到小程序seo
  • 家政服务网站建设优化网站建设seo
  • div css网站边框模板网站赚钱
  • 移动端网站建设泉州全网推广
  • 如何做网站首页收录怎么做一个网站的步骤
  • 网站报价表怎么做最近的新闻大事20条
  • 汽车网站制作模板营销软文
  • 全flash网站源码成人职业培训机构
  • 龙岩做网站的地方有哪些线下推广渠道有哪些方式
  • 江宁网站建设价位百度竞价开户联系方式
  • 事务所网站制作方案网络营销平台排名
  • 山东春季高考网站建设平台运营推广方案
  • 公司网站服务器维护推广链接怎么制作
  • 广州白云网站建设公司seo黑帽培训骗局
  • 北京 网站开发 排行google浏览器下载
  • 网站文章系统seo网站分析报告
  • 曲靖做网站的公司seo实战密码第四版
  • 网站使用字体百度网站优化方案
  • 无锡网站网页设计百度产品有哪些
  • 网站建设规范关键词代做排名推广
  • 做视频网站需要哪些技术推广app的营销方案
  • 施工企业安全生产管理制度主要有搜索引擎优化的内容
  • 徐州网站开发兼职电商网站平台搭建
  • 建设b2b网站需要多少钱高端网站建设哪家便宜
  • 怎么学网站建设镇江网站建设推广
  • 做网站公司费用重庆好的seo平台
  • 赣州网站建设怎样如何利用网络进行推广和宣传