- 浏览: 897126 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
天天来注册:
...
try catch finally 用法 -
tadpole_java:
谢谢你的分享。
二十七、Qt数据库(七)QSqlRelationalTableModel(转) -
359449749tan:
android之EditText文本监听(addTextChangedListener) -
michael_wang:
人过留名 多谢分享
Android NOtification 使用 -
wilsonchen:
wangqi0614 写道这个删除是删除所有的把?能不能值删除 ...
Android的SharedPreferences保存与删除数据简单实例
设计模式之责任链模式
- 博客分类:
- Java
main =================================================================================== package com.handler.sym; public class Testhandler { /** * @param args * 抽象处理类:抽象处理类中主要包含一个指向下一处理类的成员变量nextHandler和一个处理请求的方法handRequest,handRequest方法的主要主要思想是, 如果满足处理的条件,则有本处理类来进行处理,否则由nextHandler来处理。 具体处理类:具体处理类主要是对具体的处理逻辑和处理的适用条件进行实现。 */ public static void main(String[] args) { // TODO Auto-generated method stub Handler handler1 = new ConcreteHandler1(); Handler handler2 = new ConcreteHandler2(); Handler handler3 = new ConcreteHandler3(); handler1.setNextHandler(handler2); handler2.setNextHandler(handler3); Response response = handler1.handleRequest(new Request(new Level(4))); } } 请求与响应 ================================================================================= package com.handler.sym; public class Level { private int level = 0; public Level(int level) { this.level = level; } public boolean above(Level level){ if(this.level>=level.level){ return true; }else { return false; } } } package com.handler.sym; public class Request { Level level; public Request(Level level) { this.level = level; } public Level getLevel() { return level; } } package com.handler.sym; public class Response { } 处理抽象类 ============================================================================== package com.handler.sym; public abstract class Handler { private Handler nextHandler; public final Response handleRequest(Request request){ Response response=null; if (this.getHandlerLevel().above(request.getLevel())) { response=this.response(request); }else if(this.nextHandler!=null){ this.nextHandler.handleRequest(request); }else { System.out.print("没有合适的handler"); } return response; } public void setNextHandler(Handler handler){ this.nextHandler = handler; } protected abstract Level getHandlerLevel(); public abstract Response response(Request request); } 处理具体类1 =============================================================================== package com.handler.sym; public class ConcreteHandler1 extends Handler { protected Level getHandlerLevel() { return new Level(1); } public Response response(Request request) { System.out.println("-----请求由处理器1进行处理-----"); return null; } } 处理具体类2 =============================================================================== package com.handler.sym; public class ConcreteHandler2 extends Handler { @Override protected Level getHandlerLevel() { // TODO Auto-generated method stub return new Level(3); } @Override public Response response(Request request) { System.out.println("-----请求由处理器2进行处理-----"); return null; } } 处理具体类3 =============================================================================== package com.handler.sym; public class ConcreteHandler3 extends Handler { @Override protected Level getHandlerLevel() { // TODO Auto-generated method stub return new Level(5); } @Override public Response response(Request request) { System.out.println("-----请求由处理器3进行处理-----"); return null; } }
发表评论
-
判断两二叉树相等
2014-05-29 00:13 1091bool IsBSTEqual(BNode* root1, ... -
数据去重
2014-05-29 00:11 766引用 使用数据结构丰富的脚本语言,如Python,利用其中的字 ... -
判断一个整数是否为2的次方幂
2014-05-28 23:56 839/* 判断一个整数是否为2的次方幂 */ bool ... -
实现Comparable接口,进行排序
2014-05-28 23:47 8793import java.util.ArrayList; ... -
Struct2详解
2014-05-21 15:14 881引用 Servlet的缺点: 1、web.xml配置比较多 2 ... -
常用方法
2014-04-25 20:24 740[color=red]String[/color] ... -
java nio和io的比较
2014-04-16 19:49 1693引用 第一部分:简单介绍NIO 服务器在合理时间内处理 ... -
Struts2、Spring3、HIbernate4总结
2014-04-16 10:35 830引用 第一部分:Struts2 1 ... -
Finally的使用总结
2014-04-15 22:02 842//清单一: public class ... -
Fibonacci数列的递归与非递归
2014-04-15 20:57 682//非递归实现 //f(1)=1,f(2)=1,f(n) ... -
Java中的异常
2014-04-14 09:42 595引用 Throwable包括两个子类:Error和Except ... -
JVM的垃圾回收机制
2014-04-13 18:39 823引用 堆被划分为新生代和旧生代, 新生代包含Eden 和 S ... -
集合类总结
2014-04-04 15:54 623引用 一. 总的框架 总的有Collection和Map Co ... -
设计模式之策略模式
2014-04-01 17:07 594main ======================= ... -
设计模式之访问者模式
2014-03-31 18:57 825main ======================= ... -
设计模式之工厂模式
2014-03-31 11:33 610main ======================= ... -
设计模式之观察者模式
2014-03-30 15:04 825main =============== ... -
Java虚拟机JVM详解
2014-03-29 12:13 1219引用 第一部分:JVM基本结构 1.什么是JVM 一个java ... -
Java中的反射机制Reflect
2014-03-28 17:17 3568package com.reflect.sym; i ... -
IOC原理详解
2014-03-28 09:54 1005引用 1.当不用IOC时: 在采用面向对象方法设计的软件系统中 ...
相关推荐
设计模式之责任链模式源码 设计模式之责任链模式源码 设计模式之责任链模式源码
设计模式之职责链模式,这份文档以例子的形式讲诉了设计模式之职责链模式,希望可以帮助需要的人!
设计模式之责任链模式Java版本实现和UML类图设计
java设计模式之责任链模式,从实际生活入手说明责任链模式的原理。
设计模式之职责链模式的代码详解,简单明了的将模式思想以代码编写出来,常用的设计模式
23种设计模式之责任链模式对责任链模式进行了简单的介绍,并附带了例子程序,和大家分享
一、责任链模式 现有 “战士”、“班长”、“排长”、“连长”,“营长”五种角色,当有人要请假时要进行以下处理 1.只能是下级象上级请假(如“排长”只能向“连长请假”) 2.班长可以批准1天内的假期,排长批5天,...
为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
责任链模式(Chain) 用意:避免请求发送者与接受者耦合在一起,让多个对象连接成一条链,并且沿关这条链传递请求,直至有对象处理他为止。
职责链模式 设计模式 Chain of Responsibility 若有问题望指出。
本文实例讲述了Python设计模式之职责链模式原理与用法。分享给大家供大家参考,具体如下: 职责链模式(Chain Of Responsibility):使多个对象都有机会处理请求,从而避免发送者和接收者的耦合关系。将对象连成链并...
Java 23种设计模式17职责链模式.pdf
* @desc php设计模式之职责链模式(责任链模式) 定义:顾名思义,责任链模式为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在...
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码
【设计模式】之责任链模式责任链模式概念责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果
主要介绍了JAVA设计模式之责任链模式详解,需要的朋友可以参考下
设计模式的责任链模式的例子,希望对大家有用~~~~~~~~