> The point of passing boolean params instead of named functions is that most of the time there is shared code between the two paths and not literally all the code is enclosed in either the if or the else block
If you have this
method(bool arg)
{
// block A
if (arg)
{
// block B1
}
else
{
// block B2
}
// block C
}
you can replace it with method1()
{
A();
B1();
C();
}
method2()
{
A();
B2();
C();
}
where A(), B1(), B2() and C() are new methods that contain the previous blocks. This makes the code clearer, IMO.