Single Responsibility Principle(SRP)
Acest principiu prevede că fiecare clasă ar trebui să aibă o singură responsabilitate. Subliniază faptul că o clasă ar trebui să îndeplinească o funcție specifică și să nu aibă prea multe motive să se schimbe.
Exemplu: gestionarea informațiilor despre utilizator și trimiterea notificărilor prin e-mail.
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)
Acest principiu încurajează extinderea funcționalității prin adăugarea de cod nou, mai degrabă decât prin modificarea codului existent.
Exemplu: gestionarea diferitelor metode de plată într-o aplicație de comerț electronic.
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)
Acest principiu afirmă că obiectele unei clase derivate ar trebui să fie substituibile cu obiectele clasei de bază fără a afecta corectitudinea programului.
Exemplu: gestionarea formelor geometrice.
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
}
}
Principiul de segregare a interfeței(ISP)
Acest principiu recomandă împărțirea interfețelor în altele mai mici pentru a evita forțarea claselor să implementeze metode de care nu au nevoie.
Exemplu: Interfețe pentru actualizarea și afișarea datelor.
interface UpdateableFeature {
void updateFeature();
}
interface DisplayableFeature {
void displayFeature();
}
Dependency Inversion Principle(DIP)
Acest principiu sugerează utilizarea injecției de dependențe pentru a gestiona dependențe.
Exemplu: Utilizarea injecției de dependențe pentru a gestiona dependențe.
class OrderProcessor {
private final DBConnection dbConnection;
private final EmailService emailService;
OrderProcessor(DBConnection dbConnection, EmailService emailService) {
this.dbConnection = dbConnection;
this.emailService = emailService;
}
}
Amintiți-vă că aplicarea SOLID principiilor în Java ar trebui să fie făcută în mod flexibil, pe baza scopului specific al proiectului dvs. și a înțelegerii dvs. despre SOLID și Java.