Behavioral Design Patterns
Behavioral Design Patterns (C# / .NET) Definition Focus on communication between objects Defines how objects interact and share responsibilities Purpose Improve communication flow Reduce tight coupling between objects Make behavior dynamic and flexible Encapsulate business logic Types with Real-Time Usage 1. Strategy Pattern Idea: Change behavior at runtime Real Scenario: Tax / Discount calculation in invoice public interface ITaxStrategy { decimal Calculate(decimal amount); } public class GstTax : ITaxStrategy { public decimal Calculate(decimal amount) => amount * 0.18m; } public class NoTax : ITaxStrategy { public decimal Calculate(decimal amount) => 0; } public class InvoiceService { private readonly ITaxStrategy _tax; public InvoiceService(ITaxStrategy tax) { _tax = tax; } public decimal GetTotal(decimal amount) { return amount + _tax.C...