知识大全 JAVA中责任链模式

Posted

篇首语:再冷的石头,坐上三年也会暖。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JAVA中责任链模式相关的知识,希望对你有一定的参考价值。

JAVA中责任链模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使很多对象都有处理请求的机会 从而避免请求的发送者和接受者之间的耦合关系 将这些对象连成一条链 并沿着这条链传递该请求 直到有一个对象处理它为止责任链模式主要包括以下几个角色 处理者 处理者是一个接口 负责规定具体处理者处理用户请求的方法以及具体处理者设置后继处理对象的方法 具体处理者 具体处理者是实现处理接口的类的实例 具体处理者通过调用处理接口规定的方法处理用户的请求 既在接到用户的请求后 处理者将调用接口规定的方法 在执行该方法的过程中 如果发现能处理用户的请求 就处理用户的请求 如果发现处理不了就交给下一个处理者进行处理

  例如一个图书检索的程序 根据图书类别将图书分为了N个种类 然后创建若干个种类的对象 每个对象对一个种类进行检索 为了能更好的管理这些对象 可以将这额对象组织成一个责任链 当用户需要鉴定书籍时 系统可以让责任链上的第一个对象来处理用户的请求 这个对象首先检索自己是否能够处理用户的请求 如果能处理就反馈并返回处理内容 如果不能处理则交给下一个处理对象进行处理

  view plainprint?

  package zhy design demo

  /** * 处理接口* @author zhengyi * */ public interface Handler

  //根据书的ID进行检索public abstract void Search(int id)

  //下一个处理者 参数为实现处理接口的实现类public abstract void nextHandler(Handler han)

  view plainprint?

  package zhy design demo

  import java util ArrayList import java util List

  /** * 文学类的书籍检索* @author zhengyi * */ public class WenXue implements Handler

  private Handler han //下一个处理者private List<Integer> list   //模拟文学类书籍的编号

  public WenXue() list=new ArrayList<Integer>() list add( ) list add( ) list add( ) list add( ) list add( )

  @Override public void nextHandler(Handler han) this han=han   //给下一个处理者赋值 @Override public void Search(int id) if(ntains(id)) //检索list中是否存在此ID的书籍 如果存在则打印System out println( 恭喜您 您检索的书籍是文学类的 ) else //如果没有此书籍则交给下一个处理者进行处理if(han!=null) han Search(id)

  view plainprint?

  package zhy design demo

  import java util ArrayList import java util List

  /** * 计算机类的书籍* @author zhengyi * */ public class JiSuanJi implements Handler

  private Handler han private List<Integer> list public JiSuanJi() list=new ArrayList<Integer>() list add( ) list add( ) list add( ) list add( ) list add( ) @Override public void nextHandler(Handler han) this han=han @Override public void Search(int id) if(ntains(id)) System out println( 恭喜你 此书记在计算机类 ) else if(han!=null) han Search(id)

  view plainprint?

  package zhy design demo

  public class Appliction

  private Handler jisuanji wenxue

  public void createHandler() jisuanji=new JiSuanJi() wenxue=new WenXue() jisuanji nextHandler(wenxue)   //指定下一个处理者

  public void search(int id) jisuanji Search(id)   //第一个处理者进行筛选处理

  public static void main(String[] args) Appliction app=new Appliction() app createHandler() app search( )

cha138/Article/program/Java/hx/201311/26543

相关参考

知识大全 责任链

Java设计模式:责任链  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &n

知识大全 责任链模式(Chain of Responsibility)

责任链模式(ChainofResponsibility)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 JAVA语言中链表和双向链表的实现

JAVA语言中链表和双向链表的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  链表是一种重要

知识大全 Java实现双向链表

Java实现双向链表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  自定异常类  Java代码 

知识大全 浅谈.net 中的职责链模式的使用

  职责链模式使多个对象都有机会处理请求从而避免请求的发送者和接收者之间的耦合关系将这些对象连成一条链并沿着这条链传递该请求直到有一个对明处理它为止  职责链模式的结果如下图    Handler:定

知识大全 戏说java设计模式中的命令模式

  JAVA的设计模式我想大家都知道但每个人的理解并不相同我在这里只是阐述我的观点要是与您的观点不同请您原谅和提出您的宝贵意见    为了把命令模式讲清楚我要举一个大家都影象深刻的例子以便大家的理解那

知识大全 精解Java中代理模式的实现

精解Java中代理模式的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简介摘要代理模式是G

知识大全 设计模式分解java(2)

  当然也可以结合工厂模式来创建AbstractSpoon实例  在Java中Prototype模式变成clone()方法的使用由于Java的纯洁的面向对象特性  使得在Java中使用设计模式变得很自

知识大全 为测试 Java 应用程序生成证书链

为测试Java应用程序生成证书链  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  学习如何创建数字

知识大全 在Java中应用设计模式Singleton

在Java中应用设计模式Singleton  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb