SOLID_Principles_CSharp_Examples
SOLID_Principles_CSharp_Examples
Bad:
class Invoice {
public void CalculateTotal() { }
public void PrintInvoice() { } // Printing logic here
}
Better:
class Invoice {
public void CalculateTotal() { }
}
class InvoicePrinter {
public void Print(Invoice invoice) { }
}
Bad:
class Discount {
public double GetDiscount(string customerType) {
if (customerType == "Regular") return 0.1;
if (customerType == "Premium") return 0.2;
return 0;
}
}
Better:
interface IDiscount {
double GetDiscount();
}
Bad:
class Bird {
public virtual void Fly() { }
}
Better:
interface IBird { }
Bad:
interface IWorker {
void Work();
void Eat();
}
SOLID Principles with Simple C# Examples
Better:
interface IWork {
void Work();
}
interface IEat {
void Eat();
}
Bad:
class EmailService {
public void SendEmail(string message) { }
}
class Notification {
EmailService _email = new EmailService();
public void Send(string msg) => _email.SendEmail(msg);
}
Better:
interface IMessageService {
void Send(string message);
}
class Notification {
SOLID Principles with Simple C# Examples