SOLID Prionsabail Chur i bhFeidhm i Java: Samplaí agus Dea-Chleachtais

Single Responsibility Principle(SRP)

Deir an prionsabal seo gur cheart go mbeadh freagracht amháin ar gach rang. Leagtar béim ann gur chóir go ndéanfadh rang feidhm shonrach amháin agus gan an iomarca cúiseanna a bheith acu le hathrú.

Sampla: Faisnéis úsáideora a bhainistiú agus fógraí ríomhphoist a sheoladh.

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)

Spreagann an prionsabal seo feidhmiúlacht a leathnú trí chód nua a chur leis seachas an cód atá ann cheana a mhodhnú.

Sampla: Láimhseáil modhanna íocaíochta éagsúla in iarratas ríomhthráchtála.

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)

Dearbhaíonn an prionsabal seo gur cheart réada d’aicme díorthaithe a chur in ionad rudaí den bhunaicme gan cur isteach ar chruinneas an chláir.

Sampla: Cruthanna geoiméadracha a bhainistiú.

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

Prionsabal Deighilte Comhéadain(ISP)

Moltar leis an bprionsabal seo comhéadain a bhriseadh ina gcomhéadain níos lú chun iallach a chur ar ranganna modhanna a chur i bhfeidhm nach bhfuil gá leo.

Sampla: Comhéadain chun sonraí a nuashonrú agus a thaispeáint.

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

Dependency Inversion Principle(DIP)

Molann an prionsabal seo instealladh spleáchais a úsáid chun spleáchais a bhainistiú.

Sampla: Instealladh spleáchais a úsáid chun spleáchais a bhainistiú.

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

Cuimhnigh gur chóir SOLID prionsabail a chur i bhfeidhm Java go solúbtha bunaithe ar shainchuspóir do thionscadal agus ar do thuiscint ar SOLID agus Java.