Я б змінив ваше запитання і сказав: коли заснована на події не є правильним рішенням для об'єктно-орієнтованого додатка? Я думаю, що більшість додатків OO можуть отримати користь, якщо вони розроблені як виробники подій та споживачі.
Зрештою, "виклик методу" насправді є повідомленням, що надходить до об'єкта, і об'єкт несе відповідальність за рішення, чи буде він робити щось із повідомленням та виконувати операцію. Це не дуже ясно в сильно набраних мовах, таких як Java, але стає більш очевидним у динамічних мовах, таких як Ruby.
Ще один цікавий момент проектування програми на основі подій полягає в тому, що зазвичай внутрішні компоненти повинні бути належним чином ізольованими та узгодженими, інакше код стає дуже безладним. Як приклад, мені дуже подобається концепція шестикутної архітектури, яку використовує Алістер Кокберн, оскільки зазвичай ця закономірність створює кращу інкапсуляцію та змушує (на мій погляд) більше згуртованих компонентів.
Я думаю (але я, мабуть, помиляюся), що це також пов’язано з концепцією дизайну домену, керованою доменними подіями , в якій класи класів доменів випромінюють події, які захоплюються іншими об'єктами, і ці об’єкти випромінюють ще інші події (ви бачите, де це йде: D). Мені подобається цей шаблон, який говорить про те, що інтерфейси повинні моделювати Ролі, а не реалізації.
Вибачте, якщо я не маю особливого сенсу, останні кілька місяців я експериментував з цими моделями з дивовижними результатами, але я все ще намагаюся зрозуміти поняття та те, наскільки вони досягають.