Observer Design pattern
تالت ديزاين باترن هنتكلم عنه انهارده هو
Observer Design pattern
طيب عمتا كدا ال observer يعتبر من اسهل ال design patterns
🤗
🤗
💃
💃
Observer Design pattern
طيب عمتا كدا ال observer يعتبر من اسهل ال design patterns
لانه عباره عن :
علاقة One To Many
بمعنى مثلا عندك Objecy بيعتمد عليه مجموعه اشخاص فى حالة تغير ال Object بيرسل بﻻش لباقى الاشخاص
علاقة One To Many
بمعنى مثلا عندك Objecy بيعتمد عليه مجموعه اشخاص فى حالة تغير ال Object بيرسل بﻻش لباقى الاشخاص
يعنى ايه دا !!
🙄
🙄
مثلا نفترض انت ف مزاد و بتفتح المزاد واحد قال 20 جنيه
😂
😂
فا انت حتقول ها 20 جنيه حد حيزود
😂
واحد تانى قال 80 جنيه حصل تغير اهوا
فا انت هتبلغ الباقى و تقول 80 جنيه حد حيزود
مثلا نفترض انت ف مزاد و بتفتح المزاد واحد قال 20 جنيه
فا انت حتقول ها 20 جنيه حد حيزود
واحد تانى قال 80 جنيه حصل تغير اهوا
فا انت هتبلغ الباقى و تقول 80 جنيه حد حيزود
طيب هى فين المشكلة اللى حنحلها بالديزاين باترن دا بقى ؟
🤔
🤔
دا اشهر مثال تخيل معايا مثلا ان بيجيلك بريد على البوسطة ( مكتب البريد )
فا انت بتروح كل يوم تسال عليه هل وصل وﻻ ﻻ كل يوم ع كدا بقى انت و 100 غيرك
فا بتعمل زحمة للمكان و جهد كتير ع الناس كل يوم
فا الحل بقى ان اول ما يجى البريد دا الراجل بتاع البريد يجبهولك للبيت انت و كل الناس التانية
عشان كده انت تعتبر Observe و المكتب يعتبر Subject
فا اول ما يجى البريد بيبعته لحد عنوان البيت بتاع ال observer اللى هو انت
فا انت بتروح كل يوم تسال عليه هل وصل وﻻ ﻻ كل يوم ع كدا بقى انت و 100 غيرك
فا بتعمل زحمة للمكان و جهد كتير ع الناس كل يوم
فا الحل بقى ان اول ما يجى البريد دا الراجل بتاع البريد يجبهولك للبيت انت و كل الناس التانية
عشان كده انت تعتبر Observe و المكتب يعتبر Subject
فا اول ما يجى البريد بيبعته لحد عنوان البيت بتاع ال observer اللى هو انت
فكرة الديزاين باترن دا
Power of loos couple
و دا معناه ان ال Classes بتعتك متبقاش معتمده على بعض بقدر الامكان
يعنى هنا عندك كلاس ال subject ميعرفش اى حاجة عن ال implemention حصل ازاى غير بس ال interface
بتضيف و تشيل اى observers اى وقت
مش بتغير اى حاجة فى ال subject لو ضفت اى observes جداد
لما تغير اى حاجة فى ال observes او Subject مش حيغير اى حاجة فى التانى و هو دا ال Power of loos Couple
Power of loos couple
و دا معناه ان ال Classes بتعتك متبقاش معتمده على بعض بقدر الامكان
يعنى هنا عندك كلاس ال subject ميعرفش اى حاجة عن ال implemention حصل ازاى غير بس ال interface
بتضيف و تشيل اى observers اى وقت
مش بتغير اى حاجة فى ال subject لو ضفت اى observes جداد
لما تغير اى حاجة فى ال observes او Subject مش حيغير اى حاجة فى التانى و هو دا ال Power of loos Couple
طيب رغينا كتير نشوف ال class diagram
هنا اهوا عندك interface ال subject فى 3 method
بيضيف او يمسح observer و التالتة بتبعت لما بيحصل اى تغير
بيضيف او يمسح observer و التالتة بتبعت لما بيحصل اى تغير
و interface ال Observer و دا اللى حيـ implements اى observer class بقى و فى method update
بس فا انت الكلاس الاساسى بتاعك بيـ implement ال subject
و اى عدد من ال observers بيـ implement ال observer
بسيط جدا
و اى عدد من ال observers بيـ implement ال observer
بسيط جدا
طيب بص المثال دا كمان
طيب الكود بيشتغل ازاى بقى بص ع الصورة بتاعة البوست بقى
عندك Interface Subject فى ال 3 method اللى بياخد ال observer و اللى بيشيله و اللى بيبعت notify
و كلاس ال Login عمل Implement منه و عمل ال 3 methods
ال attach بتضيف ال observe لى array
و ال detach بتشيله من ال array
و ال notify بتـ loop على كل ال observer objects فى ال array و تعمل ال update
و ال fire method بتنادى ع ال notify
و كلاس ال Login عمل Implement منه و عمل ال 3 methods
ال attach بتضيف ال observe لى array
و ال detach بتشيله من ال array
و ال notify بتـ loop على كل ال observer objects فى ال array و تعمل ال update
و ال fire method بتنادى ع ال notify
فى بقى interface Observer فيه بس method ال update بس
و فى الاخر كل الكلاسات بتاعتك عادى بتعمل impements لل observer interface
و تشتغل عادى بقى
و فى الاخر كل الكلاسات بتاعتك عادى بتعمل impements لل observer interface
و تشتغل عادى بقى
بس كدا هو دا ال observer باترن سهل ولله
انا رغيت كتير بس حاولت اوضح الفكرة بابسط ما يمكن و فى مثال بسيط
يارب يكون مفيد و قدرت اوصل المعلومة
يارب يكون مفيد و قدرت اوصل المعلومة
الكود ع ال Github
https://github.com/…/designPatterns/blob/master/Observer.php
__________________________________
__________________________________
المصدر
كتاب Head First Design Patters
و موقع Laracastes
كتاب Head First Design Patters
و موقع Laracastes

تعليقات
إرسال تعليق