ماهو الـ Facade design pattern ؟

facade-design-pattern

لو انت عايز تشوف فيلم مثلا او مسلسل هتعمل أي؟

اول حاجه هتحضر اكل صح ؟
‏وكمان تطفئ النور وتشغل التليفزيون 🚶

‏طب تيجي نعمل الكلام ده كود ؟

1️⃣ ‏اول حاجه هنعمل كلاس اسمه Eat “أكل”
‏ونعمل جواه ميثود إسمها
‏ ()prepare_food علشان تحضرلنا الأكل بتاعنا 🚶

2️⃣ بعدين نعمل كلاس أسمو Light وهنحط جواه ميثود إسمها ()turn_off_light علشان تطفيلنا النور 🚶

3️⃣ بعدين بقا كلاس أسمو TV ونحط جواه ميثود إسمها ()turn_on_tv ودي علشان تشغلنا التلفزيون 🚶

تعالي بقا نستدعي الكلاسات دي ف الـ Main Class علشان نشوف الفيلم بتاعنا
Eat . prepare_food()
Light . turn_off_light()
TV . turn_on_tv()
بس كده 🚶
‏ايوه بقا فين الـ facade design pattern يغالي ؟
تعالي بس هقولك متقلقش
لو أنت حبيت تعمل حاجه كما قبل ما تشوف الفيلم زي مثلا انك تشغل التكييف أو زي مثلا إنك تحضر فشار

هتقولي سهل هعمل كلاس لكل واحد واجي اضيفهم ف الـ Main Class زي ما عملنا وخلاص كده .

ماشي طب بعد ما تخلص الفيلم هتقعد تعكس كل الخطوات دي تاني صح ؟ صح .
طب كل ده علشان تشوف فيلم ؟
ما تيجي نعمل حاجه أسهل؟
يلا ايدي ع كتفك
هقولك تعالي نعمل كلاس إسمو Movie ونحط جواه اثنين مييثود واحده إسمها Turn on Movie
والتانيه Turn off Movie
وداخل كل واحده نحط الأكواد اللي كنا حطينها ف
الـ Main Class

طب لو عاوز اتفرج ع فيلم أعمل أي؟
هتيجي في ال Main Class تكتب .

Movie . TurnOnMovie()

والميثود اللي إسمها TurnOnMovie هيكون جواها بقا الكود بتاع تحضير الفيلم والاكل وكل ده

Eat . prepare_food()
Light . turn_off_light()
TV . turn_on_tv()

طب إحنا كده علمنا اي ؟
هقولك أنت كان عندك شويه كلاسات بتستخدمهم هنقول عليهم subsystem
رحت انا عملت كلاس كبير اللي هو الـ Movie وحطيته جواه كل الكلاسات الصغيره دي وبقيت بتعامل مباشرة معاه ومليش دعوه بالكلاسات التانيه

ودي هيسهلل علينا ف الاستخدام بدل ما كنت بتقعد تكتب ف الـ Main Class عشر سطور علشان تشوف فيلم

وهو ده الـ Facade design pattern

إنك عندك مجموعة subsystem بتستخدمهم فبتحطهم ف كلاس وتسميه MovieFacde مثلآ وتقدر تتعامل معاه هو وتنسي الـ subsystem
الي هي Eat, Tv, Lights
ومتهتمش بوجودهم اصلا

وده بيخلي الكود بتاعك simple مش معقد بدون ما تهتم بالـ implementation بتاع الـ subsystem

طب أي أمثلة حقيقة ع ارض الواقع؟
لو أنت رحت مطعم وطلبت اكل أنت بتطلبه من الجرسون وهو اللي بيجبلك الأكل وأنت متعرفش حاجه عن المطبخ
يبقي الجرسون هنا اي ؟
بالظبط الجرسون هنا عبارة عن Facade

بس كده هو ده الـ facade design pattern 🚶

شفت بقا الـ design patterns سهله إزي 🌝
design pattern

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

2 + 15 =