Skip to content
The design and implementation of the target method pretest model. 目标方法前置检验模型设计与实现,应用于所有需要在目标操作前插入N个前置验证条件的情况(如:登录后自动执行关注、登录后继续上次的发帖操作)
Java
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
app
gradle/wrapper
lib
.gitignore
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

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();启动验证模型

三、架构设计

类关系图

详细博文介绍请戳

本项目在 jinyb09017 大大的基础上完善

  • 增加了容错处理
  • 补充了嵌套 Call 的情况
You can’t perform that action at this time.