您的位置:首页 > 其它

设计模式之责任链模式

2018-01-08 16:23 239 查看
模式定义:

使多个对象都有机会处理请求,避免发送者与接受者直接的耦合关系。

模式结构:
抽象接收者类,由一些方法以及 另一个抽象接受者类 组成。

模式实现:
public class IteratorPatternModel {

@Test
public void testMain() {
Leader groupLeader = new GroupLeader();
Leader manager = new Manager();
groupLeader.superLeader = manager;
groupLeader.handleMoney(3377);
}

abstract class Leader {
protected Leader superLeader;

public void handleMoney(int money) {
if (money <= limit()) {
handle();
} else if (superLeader != null) {
superLeader.handleMoney(money);
} else {
System.out.println("no body can handle money");
}
}

abstract int limit();

abstract void handle();
}

class GroupLeader extends Leader {

@Override
int limit() {
return 100;
}

@Override
void handle() {
System.out.println("group leader handle money");
}
}

class Manager extends Leader {

@Override
int limit() {
return 1000;
}

@Override
void handle() {
System.out.println("manager handle money");
}
}
}


适用场景:

1、多个对象可以处理同一个请求,但由哪个对象处理则在运行时动态决定
2、需要动态指定一组对象处理请求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: