标志变量的架构解决方案

时间:2017-03-14 03:15:01

标签: java android flags

经过长时间的发展,我的班级变得充满了状态变量。例如,我需要放置一个标志,等待视图返回后再继续操作。所以我想知道你们是否有任何良好或最好的做法来维持这种状态?

private BroadcastReceiver mClearJobReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        if (isResumed()) {
            mPresenter.clearJob();
        } else {
            mNeedToClearJob = true;
        }
    }
};

@Override
public void onResume() {
    super.onResume();
    if (mNeedToClearJob) {
        mPresenter.clearJob();
        mNeedToClearJob = false;
    }
}

1 个答案:

答案 0 :(得分:0)

通常,当一个人遇到标志变量时,通常应该考虑状态设计模式的应用。这种模式是

  

用于根据内部状态封装同一对象的不同行为。 Wikipedia Entry

Nystrom,在游戏编程模式(2014)中指出,“复杂的分支和可变状态 - 随时间变化的字段 - 是两个......容易出错的代码类型”,以及特别推荐国家格局作为解决问题的方法。 OP问题的本质基本上是这个问题 - 在可变状态上分支(有多个+=语句)。

OP的问题中没有足够的代码来提供详细的推荐代码解决方案。尽管如此,一般方法是为实现所述接口的每个州定义接口和类。一般而言,网络上应该有足够的指导,特别是SO,以便实施。