SOLID Principų taikymas Java: pavyzdžiai ir geriausia praktika

Single Responsibility Principle(SRP)

Šis principas teigia, kad kiekviena klasė turi turėti vieną atsakomybę. Jame pabrėžiama, kad klasė turi atlikti vieną konkrečią funkciją ir neturėti per daug priežasčių keistis.

Pavyzdys: vartotojo informacijos tvarkymas ir pranešimų el. paštu siuntimas.

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)

Šis principas skatina išplėsti funkcionalumą pridedant naują kodą, o ne keičiant esamą kodą.

Pavyzdys: skirtingų mokėjimo būdų tvarkymas el. prekybos programoje.

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)

Šis principas teigia, kad išvestinės klasės objektai turi būti pakeisti bazinės klasės objektais, nepažeidžiant programos teisingumo.

Pavyzdys: Geometrinių figūrų valdymas.

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  
  }  
}  

Sąsajos atskyrimo principas(IPT)

Šis principas pataria suskaidyti sąsajas į mažesnes, kad klasės nebūtų verčiamos įgyvendinti metodus, kurių joms nereikia.

Pavyzdys: sąsajos duomenims atnaujinti ir rodyti.

interface UpdateableFeature {  
  void updateFeature();  
}  
  
interface DisplayableFeature {  
  void displayFeature();  
}  

Dependency Inversion Principle(DIP)

Pagal šį principą priklausomybių valdymui naudoti priklausomybės injekciją.

Pavyzdys: priklausomybės injekcijos naudojimas priklausomybėms valdyti.

class OrderProcessor {  
  private final DBConnection dbConnection;  
  private final EmailService emailService;  
  
  OrderProcessor(DBConnection dbConnection, EmailService emailService) {  
    this.dbConnection = dbConnection;  
    this.emailService = emailService;  
  }  
}  

Atminkite, kad SOLID principų taikymas Java turėtų būti atliekamas lanksčiai, atsižvelgiant į konkretų jūsų projekto tikslą ir jūsų supratimą apie SOLID ir Java.