c# – 当没有使用所有实例时,依赖注入是一个好主意吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 当没有使用所有实例时,依赖注入是一个好主意吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1236字,纯文字阅读大概需要2分钟。
内容图文
![c# – 当没有使用所有实例时,依赖注入是一个好主意吗?](/upload/InfoBanner/zyjiaocheng/806/0dd251f2bda249798e2afb52d4da354a.jpg)
我支持在您的应用程序上使用依赖注入,尽管有些人认为它会给代码增加不必要的复杂性.
在过去的几天里,我想知道,在某些情况下,使用DI时可能会有一些浪费.
让我用代码示例解释一下:
使用DI
public class Class
{
private Service1 service1;
private Service2 service2;
public MyClass (Service1 service1, Service2 service2)
{
this.service1 = service1;
this.service2 = service2;
}
private int SampleMethod()
{
Console.WriteLine("doing something with service 1");
service1.DoSomething();
return 0;
}
private int SampleMethod2()
{
Console.WriteLine("doing something with service 2");
service2.DoSomethingElse();
return 1;
}
}
如果我很少调用SampleMethod2并且每次需要一个Class实例时我会注入它,该怎么办?
那不是在浪费资源吗?
我几天前得到了这个问题,我正试图找出答案.是否更容易不使用DI并让每个方法在使用时创建他们需要的实例以避免这种“浪费”?
由于DI提供的解耦,这是否是合理的“浪费”?
解决方法:
是的,它将被“浪费”,但废物的性质取决于它的设置:
>如果始终将Service2创建为新实例;那是相当昂贵的
>如果Service2处于单实例模式,它所做的就是获取现有实例(超便宜)
>如果Class处于单实例模式;它获取该实例并且不注入任何新内容
此外,这表明违反了SRP.也许Class应该分成两个对象,一个依赖于Service1,另一个依赖于Service 2(甚至两者).
无论如何,“浪费”只有在实际影响您的应用时才是重要的,DI的好处远远超过这些问题.
内容总结
以上是互联网集市为您收集整理的c# – 当没有使用所有实例时,依赖注入是一个好主意吗?全部内容,希望文章能够帮你解决c# – 当没有使用所有实例时,依赖注入是一个好主意吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。