次のようなコールバックを登録するだけではなく、Observer を使用することの長所と短所は何ですか。
worker.setOnJobIsDone(func);
次のようなコールバックを登録するだけではなく、Observer を使用することの長所と短所は何ですか。
worker.setOnJobIsDone(func);
関数ポインタを使用する場合、オブジェクトはそのユーザーを完全に認識しません。柔軟性を高める関数を呼び出すだけです(ユーザーは何も継承する必要はありません。このオブジェクトのユーザーを好きなように配線できます)。
オブザーバーパターンでは、インターフェースを定義する必要があります。これは柔軟性が低くなりますが、より明確になります。
読みやすさのために、オブザーバーパターンを強く好みます。これまでコードを見たことがない場合は、ワークフローを追跡する方がはるかに簡単です。また、メンバー関数を渡すためのC ++構文は、目にはちょっと難しいです。