Single Responsibility Principle(SRP)
ஒவ்வொரு வகுப்பினருக்கும் ஒரே பொறுப்பு இருக்க வேண்டும் என்று இந்த கொள்கை கூறுகிறது. ஒரு வகுப்பு ஒரு குறிப்பிட்ட செயல்பாட்டைச் செய்ய வேண்டும் மற்றும் மாற்றுவதற்கு பல காரணங்கள் இல்லை என்பதை இது வலியுறுத்துகிறது.
எடுத்துக்காட்டு: பயனர் தகவலை நிர்வகித்தல் மற்றும் மின்னஞ்சல் அறிவிப்புகளை அனுப்புதல்.
class UserManager {
public void CreateUser(UserData userData) {
// Logic to create a user
}
}
class EmailService {
public void SendEmail(EmailData emailData) {
// Logic to send an email
}
}
Open/Closed Principle(OCP)
ஏற்கனவே உள்ள குறியீட்டை மாற்றுவதற்குப் பதிலாக புதிய குறியீட்டைச் சேர்ப்பதன் மூலம் செயல்பாட்டை நீட்டிக்க இந்தக் கொள்கை ஊக்குவிக்கிறது.
எடுத்துக்காட்டு: ஈ-காமர்ஸ் பயன்பாட்டில் வெவ்வேறு கட்டண முறைகளைக் கையாளுதல்.
abstract class PaymentProcessor {
public abstract void ProcessPayment();
}
class CreditCardPaymentProcessor: PaymentProcessor {
public override void ProcessPayment() {
// Logic to process credit card payment
}
}
class PayPalPaymentProcessor: PaymentProcessor {
public override void ProcessPayment() {
// Logic to process PayPal payment
}
}
Liskov Substitution Principle(LSP)
நிரலின் சரியான தன்மையைப் பாதிக்காமல், அடிப்படை வகுப்பின் பொருள்களுக்குப் பெறப்பட்ட வகுப்பின் பொருள்கள் மாற்றாக இருக்க வேண்டும் என்று இந்தக் கொள்கை வலியுறுத்துகிறது.
எடுத்துக்காட்டு: வடிவியல் வடிவங்களை நிர்வகித்தல்.
abstract class Shape {
public abstract double CalculateArea();
}
class Rectangle: Shape {
public override double CalculateArea() {
// Logic to calculate area of rectangle
}
}
class Square: Shape {
public override double CalculateArea() {
// Logic to calculate area of square
}
}
Interface Segregation Principle(ISP)
வகுப்புகளுக்குத் தேவையில்லாத முறைகளைச் செயல்படுத்த கட்டாயப்படுத்துவதைத் தவிர்க்க, இடைமுகங்களைச் சிறியதாக உடைக்க இந்தக் கொள்கை அறிவுறுத்துகிறது.
எடுத்துக்காட்டு: தரவைப் புதுப்பிப்பதற்கும் காட்சிப்படுத்துவதற்கும் இடைமுகங்கள்.
interface IUpdateableFeature {
void UpdateFeature();
}
interface IDisplayableFeature {
void DisplayFeature();
}
Dependency Inversion Principle(DIP)
சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துவதை இந்தக் கொள்கை பரிந்துரைக்கிறது.
எடுத்துக்காட்டு: சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துதல்.
class OrderProcessor {
private readonly DBConnection _dbConnection;
private readonly EmailService _emailService;
public OrderProcessor(DBConnection dbConnection, EmailService emailService) {
_dbConnection = dbConnection;
_emailService = emailService;
}
}
C# இல் கொள்கைகளைப் பயன்படுத்துவது SOLID உங்கள் திட்டத்தின் குறிப்பிட்ட நோக்கம் மற்றும் C# பற்றிய உங்கள் புரிதலின் அடிப்படையில் நெகிழ்வாக செய்யப்பட வேண்டும் என்பதை நினைவில் கொள்ளுங்கள் SOLID.