Single Responsibility Principle(SRP)
ஒவ்வொரு வகுப்பினருக்கும் ஒரே பொறுப்பு இருக்க வேண்டும் என்று இந்த கொள்கை கூறுகிறது. ஒரு வகுப்பு ஒரு குறிப்பிட்ட செயல்பாட்டைச் செய்ய வேண்டும் மற்றும் மாற்றுவதற்கு பல காரணங்கள் இல்லை என்பதை இது வலியுறுத்துகிறது.
எடுத்துக்காட்டு: பயனர் தகவலை நிர்வகித்தல் மற்றும் மின்னஞ்சல் அறிவிப்புகளை அனுப்புதல்.
class UserManager {
void createUser(UserData userData) {
// Logic for creating a user
}
}
class EmailService {
void sendEmail(EmailData emailData) {
// Logic for sending an email
}
}
Open/Closed Principle(OCP)
ஏற்கனவே உள்ள குறியீட்டை மாற்றுவதற்குப் பதிலாக புதிய குறியீட்டைச் சேர்ப்பதன் மூலம் செயல்பாட்டை நீட்டிக்க இந்தக் கொள்கை ஊக்குவிக்கிறது.
எடுத்துக்காட்டு: ஈ-காமர்ஸ் பயன்பாட்டில் வெவ்வேறு கட்டண முறைகளைக் கையாளுதல்.
abstract class PaymentProcessor {
abstract void processPayment();
}
class CreditCardPaymentProcessor extends PaymentProcessor {
void processPayment() {
// Logic for processing credit card payment
}
}
class PayPalPaymentProcessor extends PaymentProcessor {
void processPayment() {
// Logic for processing PayPal payment
}
}
Liskov Substitution Principle(LSP)
நிரலின் சரியான தன்மையைப் பாதிக்காமல், அடிப்படை வகுப்பின் பொருள்களுக்குப் பெறப்பட்ட வகுப்பின் பொருள்கள் மாற்றாக இருக்க வேண்டும் என்று இந்தக் கொள்கை வலியுறுத்துகிறது.
எடுத்துக்காட்டு: வடிவியல் வடிவங்களை நிர்வகித்தல்.
abstract class Shape {
abstract double area();
}
class Rectangle extends Shape {
double area() {
// Logic for calculating area of rectangle
}
}
class Square extends Shape {
double area() {
// Logic for calculating area of square
}
}
இடைமுகம் பிரித்தல் கோட்பாடு(ISP)
வகுப்புகளுக்குத் தேவையில்லாத முறைகளைச் செயல்படுத்த கட்டாயப்படுத்துவதைத் தவிர்க்க, இடைமுகங்களைச் சிறியதாக உடைக்க இந்தக் கொள்கை அறிவுறுத்துகிறது.
எடுத்துக்காட்டு: தரவைப் புதுப்பிப்பதற்கும் காட்சிப்படுத்துவதற்கும் இடைமுகங்கள்.
interface UpdateableFeature {
void updateFeature();
}
interface DisplayableFeature {
void displayFeature();
}
Dependency Inversion Principle(DIP)
சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துவதை இந்தக் கொள்கை பரிந்துரைக்கிறது.
எடுத்துக்காட்டு: சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துதல்.
class OrderProcessor {
private final DBConnection dbConnection;
private final EmailService emailService;
OrderProcessor(DBConnection dbConnection, EmailService emailService) {
this.dbConnection = dbConnection;
this.emailService = emailService;
}
}
SOLID இல் கொள்கைகளைப் பயன்படுத்துவது உங்கள் திட்டத்தின் குறிப்பிட்ட நோக்கம் மற்றும் மற்றும் Java பற்றிய உங்கள் புரிதலின் அடிப்படையில் நெகிழ்வாக செய்யப்பட வேண்டும் என்பதை நினைவில் கொள்ளுங்கள். SOLID Java