دیزاین پترن Observer از دسته رفتاری در مجموعه ۲۳ پترن مشهور Gang of Four است. تغییر وضعیت یک آبجکت را به مشترکان ثبتشده اطلاع میدهد.
سناریوی واقعی در فروشگاه
پس از ثبت سفارش، سرویس ایمیل و بخش تحلیل داده میتوانند به رویداد OrderPlaced واکنش نشان دهند.
نمونه در PHP
Event::listen(OrderPlaced::class, function (OrderPlaced $event) {
Mail::to($event->customerEmail)->queue(new OrderConfirmed($event->orderId));
});
نمونه در پایتون
class OrderEvents:
def __init__(self): self.subscribers = []
def publish(self, order):
for handler in self.subscribers:
handler(order)
چه زمانی مناسب نیست؟
Observer درونحافظهای با Event Broker توزیعشده یکسان نیست. تحویل پیام و Retry ضمانتهای متفاوتی دارند.
برای شناخت جایگاه این پترن در سه دسته اصلی، دیزاین پترن را ببینید. مقاله دیزاین پترن باورژن و دوره آموزشی باورژن نیز منابع مرتبطاند.