مجموعة من أنماط التصميم والتعابير في بايثون.
تذكر أن كل نمط له مقايضاته الخاصة. وعليك أن تنتبه أكثر إلى سبب اختيارك لنمط معين بدلاً من الاهتمام بكيفية تنفيذه.
الأنماط الإبداعية :
نمط | وصف |
---|---|
Abstract_factory | استخدام وظيفة عامة مع مصانع محددة |
بورغ | مفردة ذات حالة مشتركة بين الحالات |
منشئ | بدلاً من استخدام مُنشئات متعددة، يتلقى كائن الباني المعلمات ويعيد الكائنات المُنشأة |
مصنع | تفويض وظيفة/طريقة متخصصة لإنشاء المثيلات |
Lazy_evaluation | نمط الملكية الذي تم تقييمه بتكاسل في بايثون |
حمام سباحة | إنشاء مجموعة من المثيلات من نفس النوع والحفاظ عليها مسبقًا |
النموذج الأولي | استخدام المصنع واستنساخ النموذج الأولي للمثيلات الجديدة (إذا كان إنشاء مثيل مكلفًا) |
الأنماط الهيكلية :
نمط | وصف |
---|---|
3 طبقات | البيانات<->منطق العمل<->فصل العرض (علاقات صارمة) |
محول | قم بتكييف واجهة مع أخرى باستخدام القائمة البيضاء |
كوبري | وسيط بين العميل والمزود لتخفيف تغييرات الواجهة |
مركب | يتيح للعملاء التعامل مع الأشياء والتراكيب الفردية بشكل موحد |
مصمم ديكور | التفاف الوظيفة مع وظائف أخرى من أجل التأثير على المخرجات |
الواجهة | استخدم فئة واحدة كواجهة برمجة التطبيقات (API) لعدد من الفئات الأخرى |
وزن الذبابة | إعادة استخدام المثيلات الموجودة للكائنات ذات الحالة المشابهة/المتطابقة بشفافية |
front_controller | طلبات معالج واحد قادمة إلى التطبيق |
mvc | نموذج<->عرض<->تحكم (علاقات غير صارمة) |
الوكيل | يقوم الكائن بتحويل العمليات إلى شيء آخر |
الأنماط السلوكية :
نمط | وصف |
---|---|
chain_of_responsibility | تطبيق سلسلة من المعالجات المتعاقبة لمحاولة معالجة البيانات |
كتالوج | سوف تستدعي الطرق العامة طرقًا متخصصة مختلفة بناءً على معلمة البناء |
chaining_method | متابعة رد الاتصال بطريقة الكائن التالي |
يأمر | قم بتجميع أمر ووسائط للاتصال بها لاحقًا |
مكرر | اجتياز حاوية والوصول إلى عناصر الحاوية |
مكرر (بديل ضمني) | اجتياز حاوية والوصول إلى عناصر الحاوية |
الوسيط | كائن يعرف كيفية توصيل الكائنات الأخرى والعمل كوكيل |
تذكار | قم بإنشاء رمز مميز غير شفاف يمكن استخدامه للعودة إلى الحالة السابقة |
المراقب | تقديم رد اتصال للإخطار بالأحداث/التغييرات في البيانات |
نشر_الاشتراك | يقوم المصدر بتوزيع الأحداث/البيانات على أكثر من 0 مستمع مسجل |
التسجيل | تتبع جميع الفئات الفرعية لفئة معينة |
مواصفة | يمكن إعادة دمج قواعد العمل عن طريق ربط قواعد العمل معًا باستخدام المنطق المنطقي |
ولاية | يتم تنظيم المنطق في عدد منفصل من الحالات المحتملة والحالة التالية التي يمكن الانتقال إليها |
استراتيجية | عمليات قابلة للتحديد على نفس البيانات |
نموذج | يفرض الكائن بنية ولكنه يأخذ مكونات قابلة للتوصيل |
زائر | استدعاء رد اتصال لجميع عناصر المجموعة |
تصميم لأنماط قابلية الاختبار :
نمط | وصف |
---|---|
Dependency_injection | 3 أنواع من حقن التبعية |
الأنماط الأساسية :
نمط | وصف |
---|---|
Department_pattern | يعالج الكائن الطلب عن طريق التفويض إلى كائن ثانٍ (المفوض) |
آحرون :
نمط | وصف |
---|---|
سبورة | النموذج المعماري، قم بتجميع معرفة النظام الفرعي المختلفة لبناء حل، ونهج الذكاء الاصطناعي - غير عصابة من أربعة أنماط |
graph_search | خوارزميات الرسوم البيانية - غير عصابة من أربعة أنماط |
hsm | آلة الدولة الهرمية - غير عصابة من أربعة أنماط |
أنماط التصميم في بايثون بواسطة بيتر أولريش
Sebastian Buczyński - لماذا لا تحتاج إلى أنماط التصميم في بايثون؟
أنت لا تحتاج إلى ذلك!
Libs قابلة للتوصيل من خلال أنماط التصميم
عند إضافة تطبيق أو تعديله، يرجى مراجعة الإرشادات التالية:
أضف وصفًا لمستوى الوحدة في شكل سلسلة مستندات تحتوي على روابط للمراجع المقابلة أو غيرها من المعلومات المفيدة.
أضف قسم "أمثلة في نظام Python البيئي" إذا كنت تعرف بعضًا منها. ويوضح كيف يمكن تطبيق الأنماط على مشاكل العالم الحقيقي.
يحتوي front.py على مثال جيد للوصف التفصيلي، ولكن في بعض الأحيان يكون الوصف الأقصر كما في template.py كافيًا.
لرؤية الإصدارات المتوافقة مع Python 2 لبعض الأنماط، يرجى مراجعة العلامة القديمة.
عند الانتهاء من كل شيء آخر - قم بتحديث الجزء المقابل من الملف README.
يرجى تشغيل ما يلي قبل تقديم التصحيح
black .
هذا ينس التعليمات البرمجية الخاصة بك.ثم إما:
tox
أو tox -e ci37
يؤدي هذا إلى إجراء اختبارات الوحدة. راجع tox.ini لمزيد من التفاصيل../lint.sh
سيقوم هذا البرنامج النصي بفحص التعليمات البرمجية الخاصة بك واختبارها. يعكس هذا البرنامج النصي إجراءات خط أنابيب CI. يمكنك أيضًا تشغيل أوامر flake8
أو pytest
يدويًا. يمكن العثور على الأمثلة في tox.ini
.
يمكنك فرز المشكلات وسحب الطلبات التي قد تتضمن إعادة إنتاج تقارير الأخطاء أو طلب معلومات حيوية، مثل أرقام الإصدارات أو تعليمات إعادة الإنتاج. إذا كنت ترغب في بدء فرز المشكلات، فإحدى الطرق السهلة للبدء هي الاشتراك في python-patterns على CodeTriage.
قام الأشخاص في Mutable.ai ببناء مساعد ذكاء اصطناعي مدرك لقاعدة التعليمات البرمجية. جربها