listener برای زمانی هست که ما یه event میخوایم fire کنیم و بعد از اون باید یه سلسله اتفاقات بیوفته مثلا ایمیل زده شه پیامک بره توی دیتابیس اتفاقاتی بیوفته و...
observer همونطور که از اسمش مشخصه میاد مدل ما رو مشاهده میکنه و در اکشنهای تعریف شده، مثلا حذف یک رکورد شما میتونید کاری که میخواید رو انجام بدید
درکل هر دو استفاده میشه و use case مخصوص به خودش رو داره