什么是控制反转
控制反转就是关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。这也是多态的体现。
好比去超市买东西,从我自己拿需要的物品变成了服务员给我。
控制反转包括依赖注入和依赖查找,这次我先理解一下依赖注入:
1 using System; 2 3 namespace 多态 4 { 5 class MainClass 6 { 7 public static void Main (string[] args) 8 { 9 IPerson student = new Student (); 10 student.run (); 11 IPerson teacher = new Teacher(); 12 teacher.run (); 13 Console.Read (); 14 } 15 } 16 17 public interface IPerson 18 { 19 void run(); 20 } 21 22 public class Student:IPerson 23 { 24 public void run() 25 { 26 Console.WriteLine ("Student Write!"); 27 } 28 } 29 30 public class Teacher:IPerson 31 { 32 public void run() 33 { 34 Console.WriteLine ("Teacher Write!"); 35 } 36 } 37 }
如代码所示:IPerson接口可以实例Student类或者Teacher类,而不像以前那样Student s = new Student();这样,如果下次想要实例Teacher还要去代码中修改,再编译,太麻烦,这样IPerson p = new *** 这个***是从配置文件(xml一类的文件)中读取出来,然后运用反射的方法动态取到要调用的类(或DLL文件),打到方便的目的。这就是我所理解的依赖注入。
--Ones