If statement 在工作之前和之后设置标志

If statement 在工作之前和之后设置标志,if-statement,refactoring,If Statement,Refactoring,有时我发现自己在做以下事情: if (some_condition) set_flag(true) do_some_work(); // more work ... if (some_condition) set_flag(false) 它经常让人感觉像被砍断了一样。有没有一种方法可以重构它,使它更干净?在我看来,我认为建议的psuedo代码很好,原因有几个: 1.检查标志而不是重新检查条件应该更有效 2.额外的抽象/重构可能只会让人更头疼,而且似乎是非增值工作,可以更好地

有时我发现自己在做以下事情:

if (some_condition)
    set_flag(true)

do_some_work();
// more work ...

if (some_condition)
    set_flag(false)

它经常让人感觉像被砍断了一样。有没有一种方法可以重构它,使它更干净?

在我看来,我认为建议的psuedo代码很好,原因有几个:
1.检查标志而不是重新检查条件应该更有效
2.额外的抽象/重构可能只会让人更头疼,而且似乎是非增值工作,可以更好地用于其他地方

3.使用标志通常是可读的,如果它们有有有意义的名称(或在本例中是方法名称)

您试图实现什么?某些条件是否相同?get标志在哪里?也许您可以发布更详细的psuedo代码?@zanegray get_标志将通过方法调用进行调用。e、 g.在身体内部做一些工作()