刘铁锰C#入门 视频P29 接口即契约(contract) 例子二(紧耦合--汽车与引擎)
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApp23 7 { 8 class InterfaceExamplee 9 { 10 static void Main(string[] args) 11 { 12 var engine = new Engine(); 13 var car = new Car(engine); 14 car.Run(15); 15 Console.WriteLine(car.Speed); 16 17 //此时我的“car ”是紧耦合 仅仅依赖在 engine 上 18 //这时就有个风险 就是 我的基础类“engine”类如果写错了的话 (若 RPM一直等于0) 19 // 即使我的车写的在正确 也没法得出正确的运行 20 21 22 23 //也可以说 如果我的 “Engine”这一块 一直没开发完成的话 24 //那我的 “Car”这一块也就必须等 也就没法进行下去的e.. 25 //所以需要进行 接口的 引用 26 27 28 Console.ReadKey(); 29 } 30 } 31 32 class Engine 33 { 34 public int RPM { get; private set; } 35 public void Work (int gas) 36 { 37 this.RPM = 1000 * gas; 38 } 39 } 40 41 class Car 42 { 43 private Engine engine1; // 我在car里面就有个 Engine类型的字段 此时!!就将两个类紧耦合在一起了 44 //car已经依赖在这个engine上面了 45 46 //创建一个构造器 47 public Car(Engine engine) 48 { 49 engine1 = engine; //我一辆车 肯定需要一个引擎。 50 } 51 52 public int Speed { get; private set; } 53 54 public void Run (int gas) 55 { 56 engine1.Work(gas); 57 this.Speed = engine1.RPM / 100; 58 } 59 } 60 }