タイトルの通りでどちらが一般的でどういった使い分けを本当はするのかを教えてください。
下のfooとbarのイベントは自由で勝手なタイミングに起きるものとします。

  1. fooイベントが発生すると処理Aを行う。このときCを作成する。
  2. barイベントが発生すると処理Bを行う。このときCを使う。

Cが存在しないと処理BがおかしくなってしまうのでCの存在を保証したいです。そこで次の二つのどちらかを自分は今まで気まぐれで使っていました。

  • 処理AでCを作成するまで、barイベントに処理Bを登録せずにおく
  • 処理Bの最初でCがあるかどうかを確認し、なければ処理を行わない

前者は無駄な確認処理がありません。後者は可読性が高いような気がします。
どちらを使うのが一般的なのでしょうか?それとも別の解決法があるのでしょうか?