نمط التصميم هو نموذج مفاهيمي يساعدك على حل مشاكل التصميم في سياقات مختلفة. إنه يشبه قالباً قابلاً لإعادة الاستخدام يمكنك تطبيقه على هيكلة التعليمات البرمجية.
أثناء العمل على المشروع، من المهم أن تتذكر أنك لا تريد إعادة اختراع العجلة. إذا ثبتت فعالية حل لمشكلة ما، فإن إعادة استخدامه سيوفر عليك الكثير من الوقت وبعض الصداع. في حالة معضلات بنية النظام، قمنا بتطوير بعض الأنماط لتسهيل عملية التصميم.
ما هو نمط التصميم؟
نمط التصميم هو نموذج مفاهيمي يساعدك على حل مشاكل التصميم في سياقات مختلفة. وهو أشبه بقالب قابل لإعادة الاستخدام يمكنك تطبيقه على هيكلة الكود. الأمر هو أن أنماط التصميم موثقة جيدًا ومثبتة جيدًا ومعروفة بشكل عام. بعبارة أخرى، استخدم نمط تصميم مناسب وتأكد من أن المطلعين الآخرين على أنماط التصميم (ويعرفون أيضًا بزملائك في العمل) سوف يتفهمون أفكارك بسلاسة.
هل أنت حريص على التعلم؟ إليك نمط تصميم الاستراتيجية.
نمط تصميم الاستراتيجية:
يحدد عائلة من الخوارزميات,
تنفذ كل خوارزمية من الخوارزميات ككيان منفصل,
يسمح باستخدام كل من الخوارزميات بالتبادل في سياق معين.
مثال واقعي؟ المصادقة
في أحد تطبيقاتنا قمنا بتنفيذ بعض الاستراتيجيات لمصادقة الطلبات. نسمح بالمصادقة باستخدام ملفات تعريف الارتباط ورموز JWT ومفاتيح واجهة برمجة التطبيقات. يبدو لي أنها مجموعة من الخوارزميات.
لنلقِ نظرة على نموذج تنفيذ.
لدينا عائلة خوارزميات المصادقة مقسمة إلى ثلاث فئات منفصلة. تُعرِّف كل فئة السلوك الملموس؛ حيث تذهب جميع تفاصيل التنفيذ:
وحدة استراتيجيات المصادقة
فئة مصادقة ملفات تعريف الارتباط
تعريف self.authenticate_request(طلب)
يضع "أطبق خوارزمية مصادقة ملفات تعريف الارتباط"
نهاية
النهاية
فئة مصادقة JWTAuthentication
تعريف self.authenticate_request(طلب)
يضع "أطبق خوارزمية مصادقة JWT"
نهاية
النهاية
فئة ApiKeyAuthentication
تعريف self.authenticate_request(طلب)
يضع "أنا أطبق خوارزمية مصادقة مفتاح واجهة برمجة التطبيقات"
نهاية
النهاية
النهاية
ثم، لدينا فئة السياق/العميل:
فئة المصادقة
تعريف المصادقة الذاتية(استراتيجية_المصادقة، الطلب)
المصادقة_استراتيجية_المصادقة(طلب)
النهاية
النهاية