有关责任链模式请参考
http://www.iteye.com/topic/343210
引言:此变种模式是主要根据面向对象的设计原则之一的“类的单一职责”和“开放和封闭原则”演变而来。
分析:原抽象处理者角色(Handler)是一个抽象类,代码一般如下:
# public abstract class Handler {
# protected Handler successor;
# protected String name;
#
# public String getName() {
# return name;
# }
#
# //处理请求,由子类完成
# public abstract void handleRequest(String request);
#
# //设置下一个处理请求的人
# public void setNextHandler(Handler successor) {
# this.successor = successor;
# }
# }
通过分析我们可以发现其职责实际上有两个:
1.按照相应职责进行相应处理,即handleRequest方法;
2.设置下一个责任处理者;
现在我们企图把她的职责单一化,我们可以抽出两个接口,一个是处理请求接口,即:
public interface Processor {
void process(Object request);
}
另外一个可以独立设置处理链条,即:
public interface Chain {
void add(Processor p);
void add(Processor p, int index);
void remove(Processor p);
void remove(Processor p, int index);
Processor get(int index);
int getCount();
}
最后,具体类实现这两个接口即可。
分享到:
相关推荐
**职责链模式(Chain of Responsibility Pattern)**是一种行为型设计模式,它允许将多个对象串联成一个处理请求的链。在职责链模式中,一个请求沿着处理者链传递,每个对象都有机会处理请求,直到找到合适的处理者...
12. **责任链模式**:处理请求的对象形成一条链,请求沿着链传递,直到被某个对象处理。 13. **命令模式**:将请求封装为一个对象,以便使用不同的请求、队列请求或参数化不同请求。 14. **解释器模式**:定义一个...
- **职责链模式**:职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 - **命令模式**:命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化;对请求...
13. **责任链模式**:将请求的发送者和接收者解耦,通过链式结构传递请求,直到找到处理者。 14. **命令模式**:将一个请求封装为一个对象,以便使用不同的请求、队列请求、或者记录请求日志。在Java中,Swing的...
以上仅是C#设计模式中的一部分,实际还包括代理模式、模板方法模式、状态模式、职责链模式等。理解并熟练运用这些设计模式,能极大地提升C#编程的效率和代码质量,帮助开发者构建出更加灵活、可维护的软件系统。
我上面这些描述其实都是一种模式,创建模式的人是大师,但是拘泥于模式的人永远是工匠. 再回到传统建筑中,中国的传统建筑是过分注重模式了,所以建筑风格发展不大,基本分南北两派,大家有个感觉,旅游时,到南 方,你发现...
13. **责任链模式**:处理请求的发送者将请求传递给一系列处理者,每个处理者都可以选择处理请求或者将请求传递给下一个处理者。 14. **命令模式**:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行...
- **行为型模式**:包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、命令模式(Command)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链模式(Chain of ...
14. 职责链模式:避免请求的发送者和接收者之间的耦合,通过将对象链接成链,沿着链传递请求,直到被处理。"ChainOfResponsibilityPattern"可能包含处理请求的多个对象形成链的示例。 15. 命令模式:将请求封装为一...
MVC(Model-View-Controller)模式是一种设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。在PHP世界中,MVC框架极大地提高了开发效率和代码的可维护性。 **一、LGPL...
在信息学中,抽象化是一种重要的思维模式。抽象化的核心思想是忽略掉问题的非本质细节,抓住问题的本质特征。通过抽象化,可以将复杂的问题简化为几个简单的模块,以模块化的方式处理问题。而这些模块之间,既有相对...
- **BOOT、BOO、BLT**:这些是BOT模式的一些变种,它们在不同国家和地区有着广泛的应用。 ### 工程项目后评价的逻辑框架法 - **LFM(Logic Framework Methodology)**:这是一种系统化的评价方法,通过明确项目的...