diff --git a/AutoFacSamles/Program.cs b/AutoFacSamles/Program.cs index c179629..4dfc66a 100644 --- a/AutoFacSamles/Program.cs +++ b/AutoFacSamles/Program.cs @@ -2,11 +2,61 @@ namespace AutoFacSamles { + public interface ILog + { + void Write(string message); + } + + public class ConsoleLog : ILog + { + public void Write(string message) + { + Console.WriteLine(message); + } + } + + public class Engine + { + private ILog log; + private int id; + public Engine(ILog log) + { + this.log = log; + id = new Random().Next(); + } + + public void Ahead(int power) + { + log.Write($"Engine [{id}] ahead {power}"); + } + } + + public class Car + { + private Engine engine; + private ILog log; + + public Car(Engine engine,ILog log) + { + this.engine = engine; + this.log = log; + } + + public void Go() + { + engine.Ahead(100); + log.Write("Car going forward..."); + } + } + class Program { static void Main(string[] args) { - Console.WriteLine("Hello World!"); + var log = new ConsoleLog(); + var engine = new Engine(log); + var car = new Car(engine, log); + car.Go(); } } }