تطبيق SOLID المبادئ في Python: الأمثلة وأفضل الممارسات

Single Responsibility Principle(SRP)

ينص هذا المبدأ على أن كل فئة يجب أن تتحمل مسؤولية واحدة. إنه يؤكد على أن الفصل الدراسي يجب أن يؤدي وظيفة واحدة محددة وليس لديه الكثير من الأسباب للتغيير.

مثال: إدارة معلومات المستخدم وإرسال إشعارات البريد الإلكتروني.

class UserManager:  
    def create_user(self, user_data):  
        # Logic for creating a user  
        pass  
  
class EmailService:  
    def send_email(self, email_data):  
        # Logic for sending an email  
        pass  

Open/Closed Principle(OCP)

يشجع هذا المبدأ على توسيع الوظائف عن طريق إضافة رمز جديد بدلاً من تعديل الكود الحالي.

مثال: التعامل مع طرق الدفع المختلفة في تطبيق التجارة الإلكترونية.

from abc import ABC, abstractmethod  
  
class PaymentProcessor(ABC):  
    @abstractmethod  
    def process_payment(self):  
        pass  
  
class CreditCardPaymentProcessor(PaymentProcessor):  
    def process_payment(self):  
        # Logic for processing credit card payment  
        pass  
  
class PayPalPaymentProcessor(PaymentProcessor):  
    def process_payment(self):  
        # Logic for processing PayPal payment  
        pass  

Liskov Substitution Principle(LSP)

يؤكد هذا المبدأ أن كائنات الفئة المشتقة يجب أن تكون قابلة للاستبدال بكائنات من الفئة الأساسية دون التأثير على صحة البرنامج.

مثال: إدارة الأشكال الهندسية.

class Shape:  
    def area(self):  
        pass  
  
class Rectangle(Shape):  
    def area(self):  
        return self.width * self.height  
  
class Square(Shape):  
    def area(self):  
        return self.side * self.side  

Interface Segregation Principle(ISP)

ينصح هذا المبدأ بتقسيم الواجهات إلى واجهات أصغر لتجنب إجبار الفئات على تنفيذ الأساليب التي لا تحتاج إليها.

مثال: واجهات لتحديث البيانات وعرضها.

class UpdateableFeature:  
    @abstractmethod  
    def update_feature(self):  
        pass  
  
class DisplayableFeature:  
    @abstractmethod  
    def display_feature(self):  
        pass  

Dependency Inversion Principle(DIP)

يقترح هذا المبدأ استخدام حقن التبعية لإدارة التبعيات.

مثال: استخدام حقن التبعية لإدارة التبعيات.

class OrderProcessor:  
    def __init__(self, db_connection, email_service):  
        self.db_connection = db_connection  
        self.email_service = email_service  

تذكر أن تطبيق SOLID المبادئ Python يجب أن يتم بمرونة بناءً على الغرض المحدد لمشروعك وفهمك لـ SOLID و Python.