布尔标志控制管理FlagFactory

项目中我们会经常用到状态标志来控制逻辑,然后对状态标志进行修改从而达到控制不同逻辑执行,然而当我们对一个状态标志修改过多时,往往会导致代码的可读性变差,出错率升高。那我们要如何解决这样的一个问题的出现呢?我的想法是把状态标志提取到一个类中,然后在该类里面进行状态的获取和修改操作即可。直接贴代码,比较简单。

public class FlagFactory {
    private final static String TAG = "FlagFactory";
    private Boolean flag;
    private Boolean tempFlag;

    public FlagFactory(Boolean defaultFlag) {
        this.flag = defaultFlag;
        this.tempFlag=defaultFlag;
        logFlag("初始化后");
    }

    public Boolean getFlag() {
        return flag;
    }

    public void logFlag(){
        logFlag(null);
    }

    public void logFlag(String log) {
        Log.i(TAG, ((log==null||log.equals(""))?(this.hashCode()+"->"):(this.hashCode()+"->"+log+":"))+"flag=" + getFlag());
    }

    public void logDefaultFlag(){
        Log.i(TAG, this.hashCode()+"->"+"defaultFlag=" + tempFlag);
    }

    public void recovery(){
        this.flag=tempFlag;
        logFlag("recovery后");
    }

    public void reverse(){
        this.flag=!tempFlag;
        logFlag("reverse后");
    }
}

使用起来也非常简单:

public class MainActivity extends Activity {
    private FlagFactory flagFactory;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        flagFactory=new FlagFactory(true);
        button=findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (flagFactory.getFlag()){
                    flagFactory.reverse();
                    Toast.makeText(MainActivity.this,"测试一下",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

是不是代码里面再也不会出现true,false之类的代码出现啦!代码是不是也变得很清晰了呢?

下载地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许天成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值