Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مقدمة في أنماط التصميم

جزء من قسم Object Oriented Programming في رحلة Python على Coddy — الدرس 44 من 64.

أنماط التصميم هي حلول قابلة لإعادة الاستخدام للمشكلات الشائعة في تصميم البرمجيات. إنها تشبه المخططات التي يمكنك تخصيصها لحل مشكلات التصميم المتكررة في الكود الخاص بك.

فكر في أنماط التصميم (design patterns) كقوالب مجربة يستخدمها المطورون ذوو الخبرة لحل مشكلات مماثلة. عندما تقول "لقد استخدمت نمط Singleton"، سيفهم المطورون الآخرون على الفور بنية الكود الخاص بك.

إليك مثال بسيط يوضح سبب أهمية الأنماط:

# بدون نمط - نهج فوضوي
class DatabaseConnection:
    def __init__(self):
        self.connection = "Connected to database"

# مشكلة: تم إنشاء اتصالات متعددة
db1 = DatabaseConnection()
db2 = DatabaseConnection()  # مهدر للموارد - ينشئ اتصالاً آخر

باستخدام نمط التصميم، ستحصل على حل أفضل:

# مع نمط Singleton - نهج محكم
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

# الآن يوجد اتصال واحد فقط
db1 = DatabaseConnection()
db2 = DatabaseConnection()
print(db1 is db2)  # True - نفس الكائن

لماذا نستخدم أنماط التصميم:

  • قابليّة إعادة الاستخدام: حلول يمكنك تطبيقها على مشكلات مماثلة
  • التواصل: لغة مشتركة بين المطورين
  • أفضل الممارسات: حلول مجربة بمرور الوقت
  • قابلية الصيانة: كود منظم وجيد الهيكلة

ما ستتعلمه في هذه السلسلة:

الأنماط الإنشائية (Creational Patterns) (كيفية إنشاء الكائنات):

  • نمط المفرد (Singleton Pattern) - نسخة واحدة فقط
  • نمط المصنع (Factory Pattern) - إنشاء كائنات دون تحديد الفئة (class) الدقيقة

الأنماط الهيكلية (كيفية تكوين الكائنات):

  • نمط المحول (Adapter Pattern) - جعل الواجهات غير المتوافقة تعمل معاً
  • نمط المزين (Decorator Pattern) - إضافة وظائف دون تغيير الهيكل

الأنماط السلوكية (كيفية تفاعل الكائنات):

  • نمط المراقب (Observer Pattern) - إخطار كائنات متعددة بالتغييرات
  • نمط الاستراتيجية (Strategy Pattern) - تبديل الخوارزميات ديناميكيًا
  • نمط الأمر (Command Pattern) - تغليف الطلبات ككائنات

سيتناول كل درس من دروس الأنماط ما يلي:

  • ما هي المشكلة التي يحلها
  • كيفية تنفيذه في لغة Python
  • متى يجب استخدامه
  • أمثلة من الواقع العملي

نقطة رئيسية: أنماط التصميم هي حلول مجربة لمشاكل البرمجة الشائعة. فهي توفر مفردات مشتركة وأفضل الممارسات التي تجعل الكود الخاص بك أكثر قابلية للصيانة ومرونة وأسهل في الفهم. ستتعلم 7 أنماط أساسية يجب أن يعرفها كل مطور Python.

ورقة مرجعية

أنماط التصميم هي حلول قابلة لإعادة الاستخدام لمشاكل شائعة في تصميم البرمجيات. فهي توفر قوالب مجربة لحل مشاكل التصميم المتكررة.

فوائد أنماط التصميم:

  • قابلية إعادة الاستخدام: حلول يمكنك تطبيقها على مشاكل مماثلة
  • التواصل: لغة مشتركة بين المطورين
  • أفضل الممارسات: حلول تم اختبارها بمرور الوقت
  • قابلية الصيانة: كود منظم ومنسق بشكل جيد

مثال - نمط Singleton:

# بدون النمط - ينشئ مثيلات متعددة
class DatabaseConnection:
    def __init__(self):
        self.connection = "Connected to database"

# مع نمط Singleton - يضمن وجود مثيل واحد فقط
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

فئات الأنماط:

  • الأنماط الإنشائية (كيفية إنشاء الكائنات): Singleton, Factory
  • الأنماط الهيكلية (كيفية تكوين الكائنات): Adapter, Decorator
  • الأنماط السلوكية (كيفية تفاعل الكائنات): Observer, Strategy, Command

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming