View Full Version : سوال: Observer Pattern
soltanalidj
جمعه 18 دی 1388, 14:44 عصر
سلام خدمت اساتید.
میشه در مورد نحوه ی کار Observer Pattern توضیح بدید.
cups_of_java
جمعه 18 دی 1388, 17:52 عصر
این الگو دو موجودیت اصلی داره:
یکی مشاهده کننده (Observer)
دیگری موضوع مورد مشاهده (Subject)
حالا هر موضوع یک سری مشاهده کننده می تونه داشته باشه و وقتی یک رویداد (event) در اون موضوع رخ می ده (مثلن وضعیتش عوض میشه و یا به روز میشه و یا...) تمام مشاهده کننده ها باید از این رویداد با خبر (notify) بشن. در این حالت این notify هست که برای مشاهده کننده ها متد update شون رو فراخوانی می کنه.
این الگو می تونه به صورت های مختلفی پیاده سازی بشه.
http://www.codeproject.com/KB/architecture/applyingpatterns/observer.gif
soltanalidj
شنبه 19 دی 1388, 01:01 صبح
میشه یه مثال ساده بزنی؟
و از کلاس و اینترفیس Observer , Observerable استفاده کنی.
فکر کنم اگه از event handeling تو swing بگی بهتر باشه.
تشکر.
cups_of_java
شنبه 19 دی 1388, 23:57 عصر
تو event handling واسط کاربری، اصولن Listenerها همون Observerها هستند و componentهای گرافیکی و یا اعمال می تونن Subject (و یا Observable) باشن. وقتی یک کلیدی مثلن زده میشه، notify میره و همه کسانی که خودشون رو به عنوان Listener برای زده شدن اون کلید معرفی کرده بودن رو متد updateاشون رو فراخوانی می کنه.
بنابراین همه Listenerها فراخوانی میشن.
یا مثلن برای یک جدول Swing شما می تونی تعدادی Observer داشته باشی و وقتی که مثلن مقدار یکی از خونه هاش عوض شد، اون Observerها باخبر بشن و وضعیت خودشون رو تغییر بدن... یا هر منطق دیگه ای که مورد نیازه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.