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

ゞ 浴缸里的玫瑰 2021-09-07 06:13 463阅读 0赞

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

每次使用new关键字创建类的实例时,都会将代码紧密地耦合到该类,并且您将无法用不同的实例替换该特定实现(至少在没有重新编译代码的情况下).

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

public class MyClass

{

public string GetMessage(int key)

{

return new MessageService().GetMessage(key)

}

}

这意味着如果您以后想要使用不同的MessageService,则不能.

另一方面,如果您将一个接口注入到类中并遵守Liskov Substition Principle,您将能够独立地改变消费者和服务.

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)

}

}

虽然这看起来更复杂,但我们现在已经设法遵循Single Responsibility Principle,确保每个合作者只做一件事,并且我们可以彼此独立地改变.

此外,我们现在可以在不改变类本身的情况下改变MyClass的行为,从而坚持Open/Closed Principle.

发表评论

表情:
评论列表 (有 0 条评论,463人围观)

还没有评论,来说两句吧...

相关阅读

    相关 sql注入什么

    SQL injection 是一种在 Web 应用程序中利用漏洞执行恶意 SQL 命令的攻击方式。通常来说,这种攻击是通过向应用程序提供恶意输入来破坏正常的 SQL 语句,从而

    相关 sql注入什么

    sql注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的操作 造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的