很多freshman上来就想搞清楚什么是IOC和DI,其实很多先进的理论和技术都在老的基础上升华出来的,最终目的是为了解放生产力。
所以先来说说下面两点基础知识:
- Direct Dependency(直接依赖)
- Inverted Dependency(反向依赖)
Direct Dependency
应用程序中的依赖关系方向应该是抽象的方向,而不是实现详细信息的方向。 大部分应用程序都是这样编写的:编译时依赖关系顺着运行时执行的方向流动,从而生成一个直接依赖项关系图。 也就是说,如果类 A 调用类 B 的方法,类 B 调用 C 类的方法,则在编译时,类 A 将取决于类 B,而 B 类又取决于类 C,如图1所示。
假设一个A通过朋友B和C找超级富婆的故事,A只有B朋友的关系,B只有C朋友的关系,C朋友才能帮忙找到超级富婆!条件是“身体好”!
对应的代码块如下:
public class ClassA { /// <summary> /// Find super rich woman /// </summary> /// <returns>return super rich woman</returns> public string FindRichWoman() { var criteria = "身体好"; return new ClassB().FindRichWoman(citeria); } }
10-29 08:14