مقدمة في أنماط التصميم
جزء من قسم البرمجة كائنية التوجه في رحلة Python على Coddy. الدرس 44 من 64.
أنماط التصميم هي حلول قابلة لإعادة الاستخدام للمشكلات الشائعة في تصميم البرمجيات. إنها أشبه بمخططات يمكنك تخصيصها لحل مشكلات التصميم المتكررة في شيفرتك.
اعتبر أنماط التصميم قوالب مُجرَّبة يستخدمها المطوّرون ذوو الخبرة لحل مشكلات متشابهة. عندما تقول "I used the Singleton pattern"، يفهم المطوّرون الآخرون بنية شفرتك فورًا.
إليك مثالًا بسيطًا على أهمية الأنماط:
# Without pattern - messy approach
class DatabaseConnection:
def __init__(self):
self.connection = "Connected to database"
# Problem: Multiple connections created
db1 = DatabaseConnection()
db2 = DatabaseConnection() # Wasteful - creates another connectionباستخدام design pattern، تحصل على حل أفضل:
# With Singleton pattern - controlled approach
class DatabaseConnection:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
cls._instance.connection = "Connected to database"
return cls._instance
# Now only one connection exists
db1 = DatabaseConnection()
db2 = DatabaseConnection()
print(db1 is db2) # True - same instanceلماذا نستخدم design patterns:
- قابلية إعادة الاستخدام: حلول يمكنك تطبيقها على مشكلات مماثلة
- التواصل: مفردات مشتركة بين المطورين
- أفضل الممارسات: حلول مجرّبة عبر الزمن
- قابلية الصيانة: تعليمات برمجية منظّمة وذات بنية جيدة
ما ستتعلّمه في هذه السلسلة:
الأنماط الإنشائية (كيفية إنشاء الكائنات):
- Singleton Pattern - مثيل one only
- Factory Pattern - إنشاء الكائنات دون تحديد class الدقيق
الأنماط الهيكلية (كيفية تكوين الكائنات):
- نمط Adapter - اجعل الواجهات غير المتوافقة تعمل معًا
- نمط Decorator - أضف وظائف دون تغيير البنية
الأنماط السلوكية (كيفية تفاعل الكائنات):
- نمط Observer - إعلام كائنات متعددة بالتغييرات
- نمط Strategy - تبديل الخوارزميات ديناميكيًا
- نمط Command - تغليف الطلبات في صورة كائنات
سيغطي كل درس عن النمط ما يلي:
- المشكلة التي يحلها
- كيفية تنفيذه في Python
- متى تستخدمه
- أمثلة من العالم الواقعي
النقطة الأساسية: أنماط التصميم هي حلول مُجرَّبة لمشكلات البرمجة الشائعة. فهي توفّر مفردات مشتركة وأفضل الممارسات التي تجعل شيفرتك أسهل في الصيانة وأكثر مرونة وأسهل في الفهم. ستتعلّم 7 أنماط أساسية ينبغي لكل مطوّر Python معرفتها.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس البرمجة كائنية التوجه
1أساسيات OOP
الملفات الخارجيةمقدمة في OOPClasses مقابل Objectsمعامل selfMethodsAttributesدالة البناء (__init__)مراجعة - آلة حاسبة بسيطة4الوراثة
الوراثة الأساسيةدالة ()superإعادة تعريف الدوال (Method Overriding)الوراثة المتعددةترتيب استدعاء الدوال (Method Resolution Order)مراجعة - هيكلية الموظفين5تعدد الأشكال
مراجعة إعادة تعريف الدوالمفهوم Duck Typingالأصناف والدوال المجردةتصميم الواجهاتملخص - حاسبة الأشكالتدرّب بنفسك: مترجم Python عبر الإنترنت