https://github.com/feelschaotic/delayaction
The design and implementation of the target method pretest model. 目标方法前置检验模型设计与实现,应用于所有需要在目标操作前插入N个前置验证条件的情况(如:登录后自动执行关注、登录后继续上次的发帖操作)
https://github.com/feelschaotic/delayaction
design-patterns
Last synced: 11 months ago
JSON representation
The design and implementation of the target method pretest model. 目标方法前置检验模型设计与实现,应用于所有需要在目标操作前插入N个前置验证条件的情况(如:登录后自动执行关注、登录后继续上次的发帖操作)
- Host: GitHub
- URL: https://github.com/feelschaotic/delayaction
- Owner: feelschaotic
- Created: 2018-04-04T13:22:33.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-07-06T08:06:20.000Z (almost 7 years ago)
- Last Synced: 2025-06-21T11:07:11.456Z (12 months ago)
- Topics: design-patterns
- Language: Java
- Homepage:
- Size: 135 KB
- Stars: 21
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## DelayAction 目标方法前置检验模型
### 一、需求背景
在执行目标行为时,需要执行一些前置的行为。而这些前置行为,需要用户参与才能完成。例如:未登录情况下点击关注用户,跳转登陆,登陆成功后自动执行关注。
### 二、如何使用
- 无嵌套调用(常用场景,单Action):
`ActionActivity`实现`Action`接口,或 new `Action`实现类,实现 call 目标行为。
```
SingleCall.getInstance()
.addAction(ActionActivity.this)
.addValid(new LoginValid())//前置条件,可能有多个
.addValid(new OtherValid()
.doCall();
```
前置行为完成后,调用`SingleCall.getInstance().doCall();`启动验证模型
- 嵌套调用(多Action):
```
Call call1 = new Call(new Action() {
@Override
public void call() {
}
});
Call call2 = new Call(new Action() {
@Override
public void call() {
}
});
callUnit1.addValid(new LoginValid());
callUnit1.addValid(new AnotherValid());
callUnit2.addValid(new OtherValid());
MultipleCall.getInstance()
.postCall(call1)
.postCall(call2);
```
前置行为完成后,调用`MultipleCall.getInstance().reCheckValid();`启动验证模型
### 三、架构设计

>[详细博文介绍请戳](https://www.jianshu.com/p/7114d5e82e8c)
> 本项目在 [jinyb09017](https://github.com/jinyb09017/delayActionDemo) 大大的基础上完善
>- 增加了容错处理
>- 补充了嵌套 Call 的情况