الگوی ناظر یک الگوی طراحی نرم افزار است که در آن یک شی به نام موضوع، فهرست وابستگی هایش را با نام ناظران نگه می دارد و هرگونه تغییر در وضعیتش را به طور خودکار و معمولاً با صدا کردن یکی از روش های آن به اطلاع آن اشیا می رساند.
این الگو معمولاً برای پیاده سازی سامانه های توزیع شدهٔ رسیدگی به رویداد در نرم افزارهای «رویداد محور» استفاده می شود. اکثر زبان های مدرن مانند C# سازندگان درونی شده «رویداد» را دارند که الگوی ناظر را پیاده سازی می کند تا برنامه نویسی آسان و کد کوتاه شود.
در این الگوی اشیای ناظر ( observer ) نزد اشیای subject ثبت نام ( register ) می کنند. در ادامه شئ subject پس از هر تغییر تمام observer ها خود را مطلع می کند.
الگوی ناظر همچنین بخش مهمی در الگوی معماری مدل - نما - کنترل گر ( MVC ) دارد. [ ۱] الگوی ناظر در بسیاری از کتابخانه های و سامانه های برنامه نویسی و تقریباً تمام تول کیت های GUI پیاده سازی شده است.
وقتی در یک خبرنامه اشتراک می گیریم، به ازای هر بار انتشار آن به صورت آنلاین یا فیزیکی خبرنامه جدید را دریافت می کنیم. در اینجا ما به عنوان اشتراک گیرنده و شرکت مدیریت کننده مجله به عنوان اشتراک دهنده عمل می کند.
مثال در پایتون:
class Observable: def __init__ ( self ) : self. __observers = def register_observer ( self, observer ) : self. __observers. append ( observer ) def notify_observers ( self, *args, **kwargs ) : for observer in self. __observers: observer. notify ( self, *args, **kwargs ) class Observer: def __init__ ( self, observable ) : observable. register_observer ( self ) def notify ( self, observable, *args, **kwargs ) : print ( ' Got' , args, kwargs, ' From' , observable ) subject = Observable ( ) observer = Observer ( subject ) subject. notify_observers ( ' test' )
مثال در جاوا:
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفاین الگو معمولاً برای پیاده سازی سامانه های توزیع شدهٔ رسیدگی به رویداد در نرم افزارهای «رویداد محور» استفاده می شود. اکثر زبان های مدرن مانند C# سازندگان درونی شده «رویداد» را دارند که الگوی ناظر را پیاده سازی می کند تا برنامه نویسی آسان و کد کوتاه شود.
در این الگوی اشیای ناظر ( observer ) نزد اشیای subject ثبت نام ( register ) می کنند. در ادامه شئ subject پس از هر تغییر تمام observer ها خود را مطلع می کند.
الگوی ناظر همچنین بخش مهمی در الگوی معماری مدل - نما - کنترل گر ( MVC ) دارد. [ ۱] الگوی ناظر در بسیاری از کتابخانه های و سامانه های برنامه نویسی و تقریباً تمام تول کیت های GUI پیاده سازی شده است.
وقتی در یک خبرنامه اشتراک می گیریم، به ازای هر بار انتشار آن به صورت آنلاین یا فیزیکی خبرنامه جدید را دریافت می کنیم. در اینجا ما به عنوان اشتراک گیرنده و شرکت مدیریت کننده مجله به عنوان اشتراک دهنده عمل می کند.
مثال در پایتون:
class Observable: def __init__ ( self ) : self. __observers = def register_observer ( self, observer ) : self. __observers. append ( observer ) def notify_observers ( self, *args, **kwargs ) : for observer in self. __observers: observer. notify ( self, *args, **kwargs ) class Observer: def __init__ ( self, observable ) : observable. register_observer ( self ) def notify ( self, observable, *args, **kwargs ) : print ( ' Got' , args, kwargs, ' From' , observable ) subject = Observable ( ) observer = Observer ( subject ) subject. notify_observers ( ' test' )
مثال در جاوا:
wiki: الگوی ناظر