Saya akan mengubah pertanyaan Anda dan mengatakan: ketika suatu peristiwa berbasis bukan solusi yang tepat untuk aplikasi berorientasi objek? Saya pikir sebagian besar aplikasi OO bisa mendapat manfaat jika dirancang sebagai produsen acara dan konsumen.
Pada akhirnya, "pemanggilan metode" sebenarnya adalah sebuah pesan yang tiba di suatu objek dan objek bertanggung jawab untuk memutuskan apakah itu akan melakukan sesuatu dengan pesan dan melakukan operasi. Ini tidak terlalu jelas dalam bahasa yang sangat diketik seperti Java, tetapi menjadi lebih jelas dalam bahasa dinamis seperti Ruby.
Hal lain yang menarik dari mendesain aplikasi sebagai event based adalah bahwa biasanya komponen internal harus diisolasi dengan baik dan koheren, jika tidak maka kode menjadi berantakan sangat, sangat cepat. Sebagai contoh, saya sangat menyukai konsep Arsitektur Hexagonal yang digunakan oleh Alistair Cockburn, karena biasanya pola ini menciptakan enkapsulasi dan kekuatan yang lebih baik (dalam pandangan saya) komponen yang lebih kohesif.
Saya pikir (tapi saya mungkin salah) bahwa ini juga terkait dengan konsep Perancangan Domain Driven dari Peristiwa Domain , di mana kelas domain memancarkan peristiwa yang ditangkap oleh objek lain, dan objek ini memancarkan peristiwa lain (Anda melihat di mana ini akan: D). Apa yang saya suka tentang pola ini adalah yang mengatakan bahwa antarmuka harus memodelkan Peran, bukan implementasi.
Maaf jika saya tidak masuk akal, saya telah bereksperimen dengan pola-pola ini selama beberapa bulan terakhir dengan hasil yang luar biasa, tetapi saya masih mencoba untuk memahami konsep-konsep dan seberapa jauh mereka mencapai.