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

校园二手网站开发与设计任务书襄阳专业网站建设

校园二手网站开发与设计任务书,襄阳专业网站建设,wordpress建立的博客,全球首个完全响应式网站自助建设平台在中国诞生摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式#xff08;Chain Of Responsibility#xff09; 是一种行为设…摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式Chain Of Responsibility 是一种行为设计模式 允许你将请求沿着处理者链进行发送。 收到请求后 每个处理者均可对请求进行处理 或将其传递给链上的下个处理者。 使多个对象都有机会处理请求从而避免请求的发送者和接收者之间的耦合关系。 将这个对象连成一条链并沿着这条链传递该请求直到有一个对象处理它为止。 二、责任链模式场景 当程序需要使用不同方式处理不同种类请求 而且请求类型和顺序预先未知时可以使用责任链模式。当必须按顺序执行多个处理者时 可以使用该模式。如果所需处理者及其顺序必须在运行时进行改变 可以使用责任链模式。 三、责任链模式类图 处理者 Handler 声明了所有具体处理者的通用接口。 该接口通常仅包含单个方法用于请求处理 但有时其还会包含一个设置链上下个处理者的方法。 基础处理者 Base Handler 是一个可选的类 你可以将所有处理者共用的样本代码放置在其中。 通常情况下 该类中定义了一个保存对于下个处理者引用的成员变量。 客户端可通过将处理者传递给上个处理者的构造函数或设定方法来创建链。 该类还可以实现默认的处理行为 确定下个处理者存在后再将请求传递给它。 具体处理者 Concrete Handlers 包含处理请求的实际代码。 每个处理者接收到请求后 都必须决定是否进行处理 以及是否沿着链传递请求。 处理者通常是独立且不可变的 需要通过构造函数一次性地获得所有必要地数据。 客户端 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://www.pierceye.com/news/545244/

相关文章:

  • 电商网站 建设目标详细说明ppt公司简介页面设计
  • 制作网站需要学什么软件爱站网关键词查询网站
  • 湘潭网站建设 就找磐石网络网站建设与网络编辑综合实训课程指导手册pdf
  • 生产企业做网站有用吗做公众号编辑用什么网站
  • 宜春做网站的公司wordpress博客下载插件
  • python创建网站网站开发技术与开发环境
  • 云南放心seo整站优化培训网页
  • 本地写wordpress北京百度seo点击器
  • 网站打不开怎么做wordpress 显示 链接深度
  • 新人怎么自己做网站更换wordpress语言包
  • 住房和城乡建设部网站安全分会邯郸做外卖网站的公司
  • 网站的文件结构企业服务公司排名
  • 微舍 微网站 怎么做wordpress 插件开发教程
  • 企业网站报价模板下载国外设计网址
  • 做网站怎么排版手机网站怎样建设
  • 大连优化网站课程国内外贸网站建设
  • 苏州建设局官方网站响应式网站制作工具
  • 德州建设小学网站网页设计与制作心得体会1000
  • 建站之星用做什么网站婚纱摄影网站开发的目的
  • 手机网站建设 cms湖南手机响应式网站建设企业
  • 德阳建设局官方网站能去百度上班意味着什么
  • 网站推广临沂企业seo策划方案优化案例
  • 河北建设厅注册中心网站网站策划书模板大全
  • 嘉兴建设教育网站培训中心网站wordpress有哪些弹窗插件
  • 石家庄网站seo外包无锡 做网站
  • 江西中慧城乡建设开发公司网站修复WordPress图片上传错误
  • 冠县网站设计做网站优化找谁
  • 网站的建设公司哪个好推广线上渠道
  • 网站建设方向论文提纲安徽鑫华建设有限公司网站
  • 哪个网站上门做护肤优秀建筑案例分析