java设计模式之职责链模式
2017-03-30 20:24
246 查看
责任链模式
设计模式很多时候都是看见名字都知道意思,责任链,见名知义为请求创建一系列处理对象。 此模式基于请求的类型将请求的发送方和接收方分离。通常每个接收器包含对另一个接收器的引用。如果一个对象不能处理请求,则它将相同的对象传递给下一个接收者,这样形成一条链。这种模式属于行为模式。基于这种情况,我写了一个字符串判断是否为null或者""的责任链,先去判断null、判断不出来在判断"",这样就形成一条链。简单简洁粗暴责任链模式UML图
责任链模式代码
package com.roc.responsibility; /** * 判断是否为空的抽象类 * @author liaowp * */ public abstract class IsEmptyAbstract { protected IsEmptyAbstract isEmptyAbstract; public void setIsEmptyAbstract(IsEmptyAbstract isEmptyAbstract) { this.isEmptyAbstract = isEmptyAbstract; } public boolean inputMsg(String str){ if(isEmpty(str)){// return true; }else{//如果没有判断出来就传入下一个 if(isEmptyAbstract !=null){ return isEmptyAbstract.isEmpty(str); }else{ System.out.println("判断器没有初始化"); return false; } } } /** * 判断是否为空 * @return */ abstract protected boolean isEmpty(String str); }
package com.roc.responsibility; /** * 判断是不是null * @author liaowp * */ public class isNull extends IsEmptyAbstract{ @Override protected boolean isEmpty(String str) { return null==str; } }
package com.roc.responsibility; /** * 判断是不是"" * @author liaowp * */ public class IsEmpty extends IsEmptyAbstract{ @Override protected boolean isEmpty(String str) { return str==""; } }
package com.roc.responsibility; /** * 责任链模式 * @author liaowp * */ public class Client { public static void main(String[] args) { String str = ""; isNull isNull = new isNull(); IsEmpty isEmpty = new IsEmpty(); isNull.setIsEmptyAbstract(isEmpty); System.out.println(isNull.inputMsg(str)); } }
责任链模式适用场景
1、有多个对象共同对一个任务进行处理。2、这些对象使用链式存储结构,形成一个链,每个对象知道自己的下一个对象。
3、一个对象对任务进行处理,可以添加一些操作后将对象传递个下一个任务。也可以在此对象上结束任务的处理,并结束任务。
相关文章推荐
- Java设计模式学习笔记---单一职责原则(一)
- java设计模式之单一职责原则(SRP)
- OOP设计模式[JAVA]——03职责链模式
- java设计模式(行为型)之职责链模式
- java设计模式---职责链模式
- [转]23种经典设计模式的java实现_5_职责链模式
- java 设计模式六大原则(1):单一职责原则
- OOP设计模式[JAVA]——03职责链模式
- Java设计模式之十九(职责链模式)
- java设计模式(一)——适配器、桥接、建造者、职责链、命令
- Java设计模式-----Chain of Responsibility职责链模式
- Java设计模式十一: 职责链模式(Chain of Responsibility)
- java设计模式之职责链模式 Chain of Responsibility
- java设计模式---职责链模式
- 23种经典设计模式的java实现_5_职责链模式
- [转]23种经典设计模式的java实现_5_职责链模式
- java 设计模式学习笔记十六 chain of responsibility 职责链设计模式
- java 设计模式学习笔记十六 chain of responsibility 职责链设计模式
- java设计模式---职责链模式
- java设计模式---职责链模式