ifの分岐で中身がほとんど同じだけど関数にするには使ってる変数が多い場合にはどうしたらいいですかね?

if (条件1){
  条件1特有の処理(1〜2行)
  共通の処理開始
  〜利用する変数は合計30くらい〜
  〜行数は20行くらい〜
  共通の処理終了
  条件1特有の処理(1〜2行)
}else if (条件2){
  条件2特有の処理(1〜2行)
  共通の処理開始
  〜利用する変数は合計30くらい〜
  〜行数は20行くらい〜
  共通の処理終了
  条件2特有の処理(1〜2行)
}

こういう場合、共通の処理の部分は分岐の中に書かずに、
最初の特有の処理だけ条件分岐で処理し、共通の処理を行い、再び条件分岐で処理するほうがいいんですかね?
でもそうすると全く同じ分かりきった分岐をもう1回余分にすることになりますよね
共通の処理を前か後ろに分離できればいいのですが、分離できない場合の話です