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

昆明网站建设论坛西安网络推广优化培训

昆明网站建设论坛,西安网络推广优化培训,ASP做网站源代码,装饰设计院一、定义:属于行为型设计模式,包含传递的数据、创建处理的抽象和实现、创建链条、将数据传递给顶端节点; 二、UML图 三、实现 1、需要传递处理的数据类 import java.util.Date;/*** 需要处理的数据信息*/ public class RequestData {priva…

一、定义:属于行为型设计模式,包含传递的数据、创建处理的抽象和实现、创建链条、将数据传递给顶端节点;

二、UML图

三、实现

1、需要传递处理的数据类

import java.util.Date;/*** 需要处理的数据信息*/
public class RequestData {private Long id;private String message;private Date date;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}@Overridepublic String toString() {return "RequestData{" +"id=" + id +", message='" + message + '\'' +", date=" + date +'}';}
}

2、抽象处理类(也可以是接口)

public abstract class AbstractRequestDataHandler {                                     protected AbstractRequestDataHandler next;                                         public AbstractRequestDataHandler getNext() {                                      return next;                                                                   }                                                                                  public void setNext(AbstractRequestDataHandler next) {                             this.next = next;                                                              }                                                                                  /**                                                                                * 抽象的处理方法,传入需要处理的数据类                                                              *                                                                                 * @param data                                                                     */                                                                                public abstract void handler(RequestData data);                                    }                                                                                      

3、具体处理实现


public class RequestDataHandlerA extends AbstractRequestDataHandler {@Overridepublic void handler(RequestData data) {System.out.println("处理类A!");String message = data.getMessage().replace("A", "");data.setMessage(message);if (next != null) {next.handler(data);} else {System.out.println("终止执行");}}
}
public class RequestDataHandlerB extends AbstractRequestDataHandler {@Overridepublic void handler(RequestData data) {System.out.println("处理类B!");String message = data.getMessage().replace("B", "");data.setMessage(message);if (next != null) {next.handler(data);} else {System.out.println("终止执行");}}
}

public class RequestDataHandlerC extends AbstractRequestDataHandler {@Overridepublic void handler(RequestData data) {System.out.println("处理类C!");String message = data.getMessage().replace("C", "");data.setMessage(message);if (next != null) {next.handler(data);} else {System.out.println("终止执行");}}
}

4、客户端

public class ChainResponsibilityClient {public static void main(String[] args) {AbstractRequestDataHandler handler1 = new RequestDataHandlerA();AbstractRequestDataHandler handler2 = new RequestDataHandlerB();AbstractRequestDataHandler handler3 = new RequestDataHandlerC();//生成调用链条handler1.setNext(handler2);handler2.setNext(handler3);//把数据交给handler1处理即可,不需要关心h2和h3怎么处理的RequestData requestData = new RequestData();requestData.setMessage("ABCDE");handler1.handler(requestData);System.out.println(requestData.getMessage());}
}

四、责任链模式需要注意的地方

1、循环调用,比如下列代码会造成循环调用:

  //生成调用链条handler1.setNext(handler2);handler2.setNext(handler3);handler3.setNext(handler1);

2、链条太长可能会导致的性能问题

3、责任链的顶端和低端节点之间不应该存在耦合问题

http://www.mmbaike.com/news/97475.html

相关文章:

  • 长春做网站选长春万网seo排名点击报价
  • 国内室内设计网站大全公司网站设计定制
  • 蓝田网站建设南宁百度快速排名优化
  • 温州市网站建设公司友链购买
  • 中国造价工程建设管理协会网站优化系统
  • 家装室内设计培训班哪里四川网络推广seo
  • 免费制作婚介网站网络营销方式有哪些?
  • 人才共享网站的建设方案怎么写百度推广费用可以退吗
  • 国外网站注册软件五种网络营销推广方法
  • 海南茶叶网站建设网店网络营销策划方案
  • 河北省建设厅政府网站首页自动seo优化
  • 小程序可以做网站吗百度学术论文查重官网
  • php网站开发核心技术百度旗下的所有产品
  • 高端定制网站建设制作推广引流怎么做
  • 手机下载软件游戏优化大师官网
  • 合理规划网站结构宁德市人口
  • 套模板网站seo公司推荐推广平台
  • 餐饮品牌网站建设福州seo经理招聘
  • 做外贸网站怎么访问外国网站如何做好百度推广
  • 自适应网站的缺点seo的含义
  • 做网站排名收益百度关键词搜索查询
  • 东莞网站设计服务网站注册步骤
  • 公司企业安全文化内容范本站长工具seo综合查询是什么
  • 怎么做磁力网站北京网站定制公司
  • 哪个手游平台折扣最低又安全百度网站排名优化
  • 孝感网站制作南宁企业官网seo
  • 网站淘客怎么做百度广告投放代理商
  • 兰州网站seo外包google搜索下载
  • 怎么注册做鸭网站网页优化包括
  • 织梦制作手机网站抖音关键词用户搜索排名靠前