リファクタリングについてききたいんですけど

最初

f() { A; B; C; }

という処理があって

g() { A; B'; C; }
}
って前後に共通部分のある処理を追加したくなったとき

a() { A }
c() { C }
f() { a(); B; c(); }
g() { a() B' c(); }

にするのと

abc(flag) {
A
if flag B else B'
C
}

みたいにするのとどっちがいいんでしょうか