using System; public interface IMessageOutput { void Out(string message); } public class ConsoleMessageOutput : IMessageOutput { public void Out(string message) { Console.WriteLine(message); } } public class ExtendedConsoleOutput : IMessageOutput { public void Out(string message) { Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + " " + message); } } public class Worker { private IMessageOutput _output; public Worker(IMessageOutput output) { _output = output; } public void DoWork() { for(int i = 0; i < 10; i++) { _output.Out("Counter: " + i); } } } public class Test { public static void Main() { Worker worker = new Worker(new ConsoleMessageOutput()); worker.DoWork(); Worker worker2 = new Worker(new ExtendedConsoleOutput()); worker2.DoWork(); // your code goes here } }