C#学习笔记-刘铁锰C#入门 视频P29 接口即契约(contract) 例子二(紧耦合--汽车与引擎)

刘铁锰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 }

 

posted @ 2020-09-21 08:48  庚子年小菜鸟  阅读(146)  评论(0)    收藏  举报