Я бы изменил ваш вопрос и сказал бы: когда основанное на событии не является правильным решением для объектно-ориентированного приложения? Я думаю, что большинство ОО-приложений могут выиграть, если они предназначены как производители событий и потребители.
В конце концов, «вызов метода» на самом деле является сообщением, поступающим к объекту, и объект отвечает за решение, будет ли он что-то делать с сообщением, и выполнение операции. Это не очень понятно в строго типизированных языках, таких как Java, но становится более очевидным в динамических языках, таких как Ruby.
Другой интересный момент разработки приложения на основе событий состоит в том, что обычно внутренние компоненты должны быть должным образом изолированы и согласованы, в противном случае код становится очень и очень быстрым. В качестве примера, мне действительно нравится концепция шестиугольной архитектуры, используемая Алистером Кокберном, так как обычно этот шаблон создает лучшую инкапсуляцию и заставляет (на мой взгляд) создавать более сплоченные компоненты.
Я думаю (но я, вероятно, ошибаюсь), что это также связано с концепцией доменных событий , управляемой доменом , в которой классы домена испускают события, которые захватываются другими объектами, а эти объекты испускают еще другие события (вы видите, где это происходит: D). Что мне нравится в этом шаблоне, так это то, что интерфейсы должны моделировать роли, а не реализации.
Извините, если у меня нет особого смысла, я экспериментировал с этими шаблонами в течение последних нескольких месяцев с потрясающими результатами, но я все еще пытаюсь понять концепции и то, как далеко они достигают.