Single Responsibility Principle(SRP)
Deir an prionsabal seo gur cheart go mbeadh freagracht amháin ar gach rang. Leagtar béim ann gur chóir go ndéanfadh rang feidhm shonrach amháin agus gan an iomarca cúiseanna a bheith acu le hathrú.
Sampla: Faisnéis úsáideora a bhainistiú agus fógraí ríomhphoist a sheoladh.
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)
Spreagann an prionsabal seo feidhmiúlacht a leathnú trí chód nua a chur leis seachas an cód atá ann cheana a mhodhnú.
Sampla: Láimhseáil modhanna íocaíochta éagsúla in iarratas ríomhthráchtála.
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)
Dearbhaíonn an prionsabal seo gur cheart réada d’aicme díorthaithe a chur in ionad rudaí den bhunaicme gan cur isteach ar chruinneas an chláir.
Sampla: Cruthanna geoiméadracha a bhainistiú.
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)
Moltar leis an bprionsabal seo comhéadain a bhriseadh ina gcomhéadain níos lú chun iallach a chur ar ranganna modhanna a chur i bhfeidhm nach bhfuil gá leo.
Sampla: Comhéadain chun sonraí a nuashonrú agus a thaispeáint.
class UpdateableFeature:
@abstractmethod
def update_feature(self):
pass
class DisplayableFeature:
@abstractmethod
def display_feature(self):
pass
Dependency Inversion Principle(DIP)
Molann an prionsabal seo instealladh spleáchais a úsáid chun spleáchais a bhainistiú.
Sampla: Instealladh spleáchais a úsáid chun spleáchais a bhainistiú.
class OrderProcessor:
def __init__(self, db_connection, email_service):
self.db_connection = db_connection
self.email_service = email_service
Cuimhnigh gur chóir SOLID prionsabail a chur i bhfeidhm Python go solúbtha bunaithe ar shainchuspóir do thionscadal agus ar do thuiscint ar SOLID agus Python.