首页 / 设计模式 / Java-设计模式(责任链模式)
Java-设计模式(责任链模式)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-设计模式(责任链模式),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1867字,纯文字阅读大概需要3分钟。
内容图文
![Java-设计模式(责任链模式)](/upload/InfoBanner/zyjiaocheng/719/47a1f59cced44fb6b6ceabe2c69d4e60.jpg)
责任链模式
是一种由命令对象源和一系列处理对象组成的设计模式。每个处理对象都包含定义它可以处理的命令对象类型的逻辑;其余的传递给链中的下一个处理对象。还存在一种机制,用于将新处理对象添加到该链的末尾。责任链模式在结构上与装饰器模式几乎相同,不同之处在于对于装饰器,所有类都处理请求,而对于责任链,链中的一个类恰好处理请求。
优点
1、避免将请求的发送与其接受方耦合
2、可以使用多个接收器处理请求
handler:抽象处理者
ConcreteHandler: 具体处理者,接受到请求后,可以选择处理请求或者传递给下一个处理者
假设我们有一个请假系统,不同的职位可以处理不同的请假请求,比如:
组长:可以处理两天以内的请求
厂长:可以处理七天以内的请求
老板:可以处理十五天以内的请求
如果组长可以处理,那么就直接处理了,如果组长不可以处理,那么我们再继续往下传递。
1、Handler
public abstract class Handler {
//下个处理者
protected Handler successor;
public void setSuccessor (Handler successor){
this.successor = successor;
}
public abstract void handlerRequest(int heaven);
}
2、组长
public class GroupLeaderHandler extends Handler {
@Override
public void handlerRequest(int heaven) {
if(heaven <=2){
System.out.println("组长处理");
}
else{
if(super.successor != null){
super.successor.handlerRequest(heaven);
}
}
}
}
3、厂长
public class FactoryManagerHander extends Handler {
@Override
public void handlerRequest(int heaven) {
if(heaven <= 7){
System.out.println("厂长处理");
} else{
if(super.successor != null){
super.successor.handlerRequest(heaven);
}
}
}
}
4、客户端
public class Client {
public static void main(String[] args){
Handler groupLeaperHander = new GroupLeaderHandler();
Handler factoryManagerHander = new FactoryManagerHander();
Handler boosHander = new BossHandler();
groupLeaperHander.setSuccessor(factoryManagerHander);
factoryManagerHander.setSuccessor(boosHander);
//请假一天
groupLeaperHander.handlerRequest(1);
//请假六天
groupLeaperHander.handlerRequest(6);
//请假十天
groupLeaperHander.handlerRequest(10);
}
}
运行效果
内容总结
以上是互联网集市为您收集整理的Java-设计模式(责任链模式)全部内容,希望文章能够帮你解决Java-设计模式(责任链模式)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。