ما هي أنماط التصميم؟
حلول مُجرّبة لمشاكل تصميم متكرّرة — مفردات مشتركة بين المطوّرين.
Singleton — نسخة واحدة
class Config:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
نسخة واحدة فقط (إعدادات، اتصال قاعدة بيانات).
Factory — إنشاء كائنات
def create_shape(kind):
if kind == "circle": return Circle()
if kind == "square": return Square()
يخفي منطق الإنشاء عن المستخدم.
Observer — الاشتراك والإشعار
class Subject:
def __init__(self): self.observers = []
def subscribe(self, o): self.observers.append(o)
def notify(self, data):
for o in self.observers:
o.update(data)
أساس أنظمة الأحداث والتفاعلية (مثل React state).
Strategy — خوارزمية قابلة للتبديل
class Sorter:
def __init__(self, strategy):
self.strategy = strategy
def sort(self, data):
return self.strategy(data)
التصنيفات
- إنشائية: Singleton، Factory، Builder.
- هيكلية: Adapter، Decorator، Facade.
- سلوكية: Observer، Strategy، Iterator.
💡 لا تفرض الأنماط؛ استخدمها عندما تطابق مشكلتك فعلًا.
🎯 التالي: نمذجة UML.