 file. } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 // Module 1 (Client) static void Main ( ) { var logger = new FileLogger ( ) ; var product = new Product ( "milk" ) ; var productManager = new ProductManager ( logger ) ; productManager . AddProduct ( product ) ; var consumer = new Consumer ( logger ) ; consumer . PurchaseProduct ( product . Name ) ; } // Module 2 (Business logic) class ProductManager { private readonly ILogger _logger ; public ProductManager ( ILogger logger ) { _logger = logger ; } public void AddProduct ( Product product ) { // Add the product to the database. _logger . Log ( "The product is added." ) ; } } public class Consumer { private readonly ILogger _logger ; public Consumer ( ILogger logger ) { _logger = logger ; } public void PurchaseProduct ( string product ) { // Purchase the product. _logger . Log ( "The product is purchased." ) ; } } public class Product { public string Name { get ; private set ; } public Product ( string name ) { Name = name ; } } // Module 3 (interfaces) public interface ILogger { void Log ( string message ) ; } // Module 4 (Logger implementation) public class FileLogger 