Single Responsibility Principle(SRP)
ஒவ்வொரு வகுப்பினருக்கும் ஒரே பொறுப்பு இருக்க வேண்டும் என்று இந்த கொள்கை கூறுகிறது. ஒரு வகுப்பு ஒரு குறிப்பிட்ட செயல்பாட்டைச் செய்ய வேண்டும் மற்றும் மாற்றுவதற்கு பல காரணங்கள் இல்லை என்பதை இது வலியுறுத்துகிறது.
எடுத்துக்காட்டு: பயனர் தகவலை நிர்வகித்தல் மற்றும் மின்னஞ்சல் அறிவிப்புகளை அனுப்புதல்.
class UserManager
def create_user(user_data)
# Logic for creating a user
end
end
class EmailService
def send_email(email_data)
# Logic for sending an email
end
end
Open/Closed Principle(OCP)
ஏற்கனவே உள்ள குறியீட்டை மாற்றுவதற்குப் பதிலாக புதிய குறியீட்டைச் சேர்ப்பதன் மூலம் செயல்பாட்டை நீட்டிக்க இந்தக் கொள்கை ஊக்குவிக்கிறது.
எடுத்துக்காட்டு: ஈ-காமர்ஸ் பயன்பாட்டில் வெவ்வேறு கட்டண முறைகளைக் கையாளுதல்.
class PaymentProcessor
def process_payment
# Common logic for payment processing
end
end
class CreditCardPaymentProcessor < PaymentProcessor
def process_payment
# Logic for processing credit card payment
end
end
class PayPalPaymentProcessor < PaymentProcessor
def process_payment
# Logic for processing PayPal payment
end
end
Liskov Substitution Principle(LSP)
நிரலின் சரியான தன்மையைப் பாதிக்காமல், அடிப்படை வகுப்பின் பொருள்களுக்குப் பெறப்பட்ட வகுப்பின் பொருள்கள் மாற்றாக இருக்க வேண்டும் என்று இந்தக் கொள்கை வலியுறுத்துகிறது.
எடுத்துக்காட்டு: வடிவியல் வடிவங்களை நிர்வகித்தல்.
class Shape
def area
# Common logic for calculating area
end
end
class Rectangle < Shape
def area
# Logic for calculating area of rectangle
end
end
class Square < Shape
def area
# Logic for calculating area of square
end
end
Interface Segregation Principle(ISP)
வகுப்புகளுக்குத் தேவையில்லாத முறைகளைச் செயல்படுத்த கட்டாயப்படுத்துவதைத் தவிர்க்க, இடைமுகங்களைச் சிறியதாக உடைக்க இந்தக் கொள்கை அறிவுறுத்துகிறது.
எடுத்துக்காட்டு: தரவைப் புதுப்பிப்பதற்கும் காட்சிப்படுத்துவதற்கும் இடைமுகங்கள்.
module UpdateableFeature
def update_feature
# Logic for updating feature
end
end
module DisplayableFeature
def display_feature
# Logic for displaying feature
end
end
Dependency Inversion Principle(DIP)
சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துவதை இந்தக் கொள்கை பரிந்துரைக்கிறது.
எடுத்துக்காட்டு: சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துதல்.
class OrderProcessor
def initialize(db_connection, email_service)
@db_connection = db_connection
@email_service = email_service
end
end
SOLID இல் கொள்கைகளைப் பயன்படுத்துவது உங்கள் திட்டத்தின் குறிப்பிட்ட நோக்கம் மற்றும் மற்றும் Ruby பற்றிய உங்கள் புரிதலின் அடிப்படையில் நெகிழ்வாக செய்யப்பட வேண்டும் என்பதை நினைவில் கொள்ளுங்கள். SOLID Ruby