1 概述
当我们想闭上眼睛想如何让我们的软件更加可用可维护时,我们总能想到一个词:松耦合。在这篇文章中,主要讲述了模块间存在的依赖关系,但这种依赖关系违背了依赖倒置原则。在这之后,我们将讨论一种解除软件依赖关系的设计模式——IoC,以及它的两种实现方法:依赖注入(DI)和服务定位。最后我们简单地列下当前流行的IoC容器工具。
目录
- 依赖
- 依赖倒置原则(DIP)
- 控制反转IoC:解除两个模块间的直接依赖关系
- 依赖注入(DI)
- 服务定位(Service Locator)
- IoC容器
2 依赖
当一个模块/类使用另一个模块/类,即存在了一种依赖关系。
示例场景:
在这里,我们使用销售系统中保存订单的场景。比如,我们当前的需求是将数据保存到SQL Server中。在这里我们只关注业务层与数据持久层之间的依赖关系。
示例v1:
public class SQLServerOrderDAL { public void Add() { Console.WriteLine("The order was added in into sql server database."); } } public class OrderManager { public void AddOrder() { SQLServerOrderDAL orderDAL = new SQLServerOrderDAL(); orderDAL.Add(); } } class Program { static void Main(string[] args) { OrderManager orderManager = new OrderManager(); orderManager.AddOrder(); Console.ReadLine(); } }