Aplikimi i SOLID Parimeve në C#: Shembuj dhe praktika më të mira

Single Responsibility Principle(SRP)

Ky parim thotë se çdo klasë duhet të ketë një përgjegjësi të vetme. Ai thekson se një klasë duhet të kryejë një funksion specifik dhe të mos ketë shumë arsye për të ndryshuar.

Shembull: Menaxhimi i informacionit të përdoruesit dhe dërgimi i njoftimeve me email.

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)

Ky parim inkurajon zgjerimin e funksionalitetit duke shtuar kod të ri në vend të modifikimit të kodit ekzistues.

Shembull: Trajtimi i metodave të ndryshme të pagesës në një aplikacion e-commerce.

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)

Ky parim pohon se objektet e një klase të derivuar duhet të jenë të zëvendësueshme për objektet e klasës bazë pa ndikuar në korrektësinë e programit.

Shembull: Menaxhimi i formave gjeometrike.

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)

Ky parim këshillon ndarjen e ndërfaqeve në më të vogla për të shmangur detyrimin e klasave për të zbatuar metoda që nuk u duhen.

Shembull: Ndërfaqet për përditësimin dhe shfaqjen e të dhënave.

interface IUpdateableFeature {  
  void UpdateFeature();  
}  
  
interface IDisplayableFeature {  
  void DisplayFeature();  
}  

Dependency Inversion Principle(DIP)

Ky parim sugjeron përdorimin e injektimit të varësisë për të menaxhuar varësitë.

Shembull: Përdorimi i injektimit të varësisë për të menaxhuar varësitë.

class OrderProcessor {  
  private readonly DBConnection _dbConnection;  
  private readonly EmailService _emailService;  
  
  public OrderProcessor(DBConnection dbConnection, EmailService emailService) {  
    _dbConnection = dbConnection;  
    _emailService = emailService;  
  }  
}  

Mos harroni se aplikimi i SOLID parimeve në C# duhet të bëhet në mënyrë fleksibël bazuar në qëllimin specifik të projektit tuaj dhe të kuptuarit tuaj të SOLID dhe C#.