栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是依赖注入和Spring框架?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是依赖注入和Spring框架?

我们使用依赖注入(DI)来实现 松散耦合 。选择任何特殊的DI容器并不那么重要。

每次使用

new
关键字创建一个类的实例时,您都将代码紧密地耦合到该类,并且您将无法用另一个实例代替该特定实现(至少在不重新编译代码的情况下)。

在C#中看起来像这样(但在Java中是等效的):

public class MyClass{    public string GetMessage(int key)    {        return new MessageService().GetMessage(key)    }}

这意味着,如果您以后想要使用其他MessageService,则不能。

另一方面,如果您将一个接口注入类并遵守Liskov替换原则,则您将能够独立地改变使用者和服务。

public class MyClass{    private readonly IMessageService messageService;    public MyClass(IMessageService messageService)    {        if(messageService == null)        { throw new ArgumentNullException("messageService");        }        this.messageService = messageService;    }    public string GetMessage(int key)    {        return this.messageService.GetMessage(key)    }}

尽管这看起来更为复杂,但我们现在已经设法遵循“
单一责任原则”,即确保每个协作者仅做一件事情,并且我们可以彼此独立地进行变更。

此外,我们现在可以更改MyClass的行为,而无需更改类本身,因此遵循了Open / Closed
Principle



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463892.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号