假设有这么一个场景,学生们有个问题,需要去处理。有大多数情况下学生个人就能搞定这个通知,如果不行就让班长帮忙。班长也无能无力的时候就可以去找到辅导员,最终解决学生的问题。这中间就形成了一个职责链,当前级别无法处理问题时,就往上交付,知道解决为止。在程序中也可以通过责任链模式来把上述的场景展现出来。
UML图:
具体的代码实现如下:
/**
*代表职务或者是请求(问题)的等级
*/
public enum Status {
//辅导员,班长,学生
COUNSELOR, MONITOR, STUDENT
}
/**
* 抽象请求
*/
public abstract class AbstractRequest {
private String mContent;
public AbstractRequest(String content) {
mContent = content;
}
public String getContent() {
return mContent;
}
//获得请求级别
public abstract Enum getRequestStatus();
}
/**
* 不同级别的请求
*/
class RequestA extends AbstractRequest {