一、什么是IOC
IoC-Invertion of Control,即控制反转,是一种程序设计思想。
先初步了解几个概念:
依赖(Dependency):就是有联系,表示一个类依赖于另一个类。
依赖倒置原则(DIP):设计模式六大原则之一,是一种软件架构设计原则。
控制反转(IoC):一种软件设计原则,上层对下层的依赖(即底层模块的获得)交给第三方。
依赖注入(DI):实现IoC的一种方式、手段。
IoC容器:依赖注入的框架,用来映射依赖,管理对象的创建和生存周期。
二、依赖

依赖就是有联系,有地方使用它就是有依赖它,下面看一个简单的示例:
class Program
{
class BMW
{
public string Show()
{
return "宝马";
}
}
class ChinesePeople
{
private BMW bmw = new BMW();
public void Run()
{
Console.WriteLine($"今天开{bmw.Show()}上班");
}
}
static void Main(string[] args)
{
ChinesePeople people = new ChinesePeople();
BMW bmw = new BMW();
people.Run();
Console.Read();
}
}
上面中国人开着宝马去上班,客户端有使用中国人、宝马汽车两个对象,中国人中有使用对象宝马汽车,我们可以从中找到三个依赖关系:
客户端依赖对象ChinesePeople;
客户端依赖对象BMW;
ChinesePeople依赖对象BMW;
三、依赖倒置原则
过些日子来了新需求,中国人不仅要开宝马去上班,还要开奔驰去上班,如果按照上面直接依赖关系的方式去做,我们就需要修改ChinesePeople类,让它实现一个参数为宝马的重载方法Run()。显然这样不是好的设计,我们总不能每次新增一种汽车(即修改下层模块)都要去修改ChinesePeople类吧(相对于汽车为上层模块),太麻烦

最低0.47元/天 解锁文章
4900

被折叠的 条评论
为什么被折叠?



