- 浏览: 202078 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
[关键字]:java,design pattern,设计模式,《Java与模式》,Chain of Responsibility,责任链模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com)
[正文]:
package pattern.chainofresponsibility;
/**
* 责任链模式:Chain of Responsibility
* @version 2009-5-9
* @author Winty(wintys@gmail.com)
*/
public class ChainOfResponsibilityTest{
public static void main(String[] args){
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handler3 = new ConcreteHandler3();
//设置责任链
handler3.setSuccessor(handler2);
handler2.setSuccessor(handler1);
//发送命令
handler3.handleRequest();
}
}
/**
*抽象处理者
*/
abstract class Handler{
protected Handler successor;
public Handler getSuccessor(){
return successor;
}
public void setSuccessor(Handler successor){
this.successor = successor;
}
public abstract void handleRequest();
}
/**
*具体处理者
*/
class ConcreteHandler1 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete1");
System.out.println(" to class" + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler1");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler2 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete2");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler2");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler3 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete3");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler3");
}
}
}
/**
* 责任链模式:Chain of Responsibility
* @version 2009-5-9
* @author Winty(wintys@gmail.com)
*/
public class ChainOfResponsibilityTest{
public static void main(String[] args){
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handler3 = new ConcreteHandler3();
//设置责任链
handler3.setSuccessor(handler2);
handler2.setSuccessor(handler1);
//发送命令
handler3.handleRequest();
}
}
/**
*抽象处理者
*/
abstract class Handler{
protected Handler successor;
public Handler getSuccessor(){
return successor;
}
public void setSuccessor(Handler successor){
this.successor = successor;
}
public abstract void handleRequest();
}
/**
*具体处理者
*/
class ConcreteHandler1 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete1");
System.out.println(" to class" + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler1");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler2 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete2");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler2");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler3 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete3");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler3");
}
}
}
发表评论
-
[原]导出CodeHelp的数据
2009-03-16 17:05 848搬到blogjava总得发点原创的东西吧。 Code ... -
[原]使用Ant实现zip压缩解压功能
2009-03-19 13:17 1712[关键词]:ant,zip,unzip,Apache,压缩,解 ... -
[原]EL函数的使用
2009-04-03 21:29 1111[标题]:EL函数的使用 [时 ... -
[原]对Class.getMethod()的调用未经检查
2009-04-05 15:52 2354[标题]:对Class.getMethod()的调用未经检查 ... -
[原]JNI简单示例
2009-04-05 21:33 1033[标题]:JNI简单示例 [时 ... -
[原]简单工厂模式
2009-04-14 12:26 745[关键字]:java,设计模式,简单工厂,《java与模式》 ... -
[原]工厂模式
2009-04-14 12:32 720[关键字]:java,design pattern,设计模式, ... -
[原]抽象工厂模式
2009-04-14 19:25 750[关键字]:java,design pattern,设计模式, ... -
[原]方法返回值为数组的另一种表示方法
2009-04-25 22:28 970[时间]:2009-04-25 今天看到JDK的源代码 ... -
[原]SAX使用示例
2009-04-26 19:18 2044[标题]:[原]SAX使用示例 [时间]:2009-4-25 ... -
[原]状态模式
2009-05-18 23:03 809[关键字]:java,design pattern,设计模式, ... -
[原]策略模式
2009-05-21 22:21 695[关键字]:java,design pattern,设计模式, ... -
[原]VC实现重启路由器
2009-05-29 23:36 2075[标题]:[原]VC实现重启路 ... -
[原]远程登录Windows Server 2003的当前会话
2009-06-01 11:19 2066[标题]:远程登录Windows Server 2003的当前 ... -
[原]Tomcat crossContext
2009-06-01 12:27 6082[标题]:Tomcat crossContext [时间]:2 ... -
[原]装饰模式1
2009-06-07 22:33 703[关键字]:java,design pattern,设计模式, ... -
[原]装饰模式3-Grep
2009-06-07 22:42 690[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-透明的
2009-06-08 22:23 757[关键字]:java,design pattern,设计模式, ... -
[原]合成模式-安全的
2009-06-08 22:27 831[关键字]:java,design pattern,设计模式, ... -
[原]模板方法模式
2009-06-15 17:05 669[关键字]:java,design pattern,设计模式, ...
相关推荐
这个压缩包中包含的实例源码涵盖了多种设计模式,包括工厂模式、动态代理和责任链模式。让我们深入探讨这些设计模式的核心概念、用途以及它们在实际编程中的应用。 1. 工厂模式:这是最基础的设计模式之一,属于...
职责链模式避免将请求的发送者和接收者耦合在一起,而是将这些对象连成一条链,并沿着这条链传递请求,直到有对象处理它为止;访问者模式表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的...
责任链模式是一种行为设计模式,允许将请求沿着处理者链传递,直到某个处理者处理请求。在UML中,我们会看到一个接口或抽象类,如`Handler`,包含一个处理请求的方法。每个具体的处理者类(如`ConcreteHandler1`和`...
4. **行为型模式**:如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、责任链模式(Chain of Responsibility)、命令模式(Command)、迭代器模式(Iterator)、访问者模式...
其中包括责任链模式、命令模式、迭代器模式、访问者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。责任链模式通过建立处理请求的对象链,使得请求可以在链上传递,直到被某个对象...
- 责任链模式(Chain of Responsibility):避免向对象的发送者和接收者耦合具体的处理逻辑,将多个处理对象连接成一条链,并沿着这条链传递请求,直到有对象处理它为止。 - 状态模式(State):允许一个对象在其...
行为模式是指在对象的行为上使用的模式,包括 Iterator(迭代模式)、Template(模板模式)、Chain of Responsibility(责任链模式)、Memento(纪念品模式)、Mediator(中介模式)、Interpreter(解释器模式)、...
3. 行为型模式:这些模式关注对象之间的交互和职责分配,包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。在JavaScript中...
10. **责任链模式(17-责任链模式)**:责任链模式允许将请求沿着处理者链传递,直到某个处理者处理请求。每个处理者都可以处理请求,或者将请求传递给链上的下一个处理者。 以上设计模式都是软件设计中的重要工具,...
3. **责任链模式**:在对象链中传递请求,由链上的对象决定是否处理该请求,使得系统可以在不影响客户端的情况下动态调整责任分配。 4. **策略模式**:定义一组可互换的算法,并封装起来,使得它们可以相互替换,...
这种模式打破了传统的库存管理模式,强调供应链的集成化管理,使得库存决策不再是单一企业的责任,而是供应链上各参与方共同协作的结果。 在实际操作中,VMI有多种运作模式: 1. 材料供应商到产品制造商模式:常见...
《价值链管理模式下企业财务管理研究》这篇文档主要探讨了在现代企业管理中,如何运用价值链管理模式来优化企业财务管理,提升企业的核心竞争力。价值链管理是一种系统性的管理理念,它将企业的各项活动分解为一系列...
再者,行为型设计模式关注对象之间的职责分配和通信,如命令模式、解释器模式、迭代器模式、访问者模式、备忘录模式、状态模式、策略模式、模板方法模式和责任链模式。命令模式封装了请求作为对象,使得可以使用不同...
行为型模式关注对象间的行为分配,如策略模式、观察者模式、访问者模式、责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、状态模式、模板方法模式和访问者模式,它们处理对象间的通信和行为。...
行为型模式主要关注对象间如何通信和责任分配,例如策略模式、观察者模式、职责链模式等,它们有助于实现更复杂的控制流。 本书可能会详细讲解每个模式的原理、应用场景、优缺点以及如何在Java中实现。例如,单例...
首先,供给链是指从原材料采购到最终产品交付消费者的整个过程,包括供给商、制造商、分销商、零售商等多个环节。在这个过程中,信息流、物流、资金流的有效控制至关重要。 牛鞭效应是供给链管理中的一个重要问题,...
这个过程中,每个环节都有特定的角色和责任,如供应商提供原材料,制造商负责生产,分销商协调物流,零售商直接面对消费者。 【供应链管理的模式选择】 供应链管理的模式可以根据稳定性、容量与需求关系、交互作用...
- **上下游供应链设计**:优化上游原材料供应和下游销售网络,提升供应链效率。 通过以上分析,白沙集团旨在通过管理模式的改革和供应链的优化,提升企业运营效率,增强市场竞争力,实现可持续发展。这涉及到集团...
行为型模式关注对象间的行为分配,如策略模式、观察者模式、责任链模式等。 在Java语言中,设计模式的应用无处不在。例如,工厂模式提供了一种封装对象创建过程的方法,使得客户端不必了解具体的实现细节。而单例...
10. **责任链模式(Chain of Responsibility)**:责任链模式允许将多个对象链接成一个链,请求沿着链传递,直到某个对象处理它。在聊天系统的敏感词过滤场景中,责任链模式非常适用,因为可以灵活地添加或删除过滤...