c# – 注入具有与更高级别类相同的构造函数参数的依赖项
有时当我设计我的类时,我需要一些具有类似构造函数参数的依赖类.假设我们有
interface IDependency { void DoSomething(); } class DependencyClass : IDependency { public DependencyClass(int length) {...} ... } class MainClass { public MainClass(int length,IDependency dependency) {...} ... } MainClass需要具有相同长度的DependencyClass实例.我有两种方法来处理它: >不直接创建MainClass实例并始终从工厂获取它们.这样我就可以确保将所需的IDependency实例提供给MainClass构造函数. 我不确定他们中的任何一个是不是一个好选择.在这种情况下是否有最佳做法? 解决方法
这是一个非常有趣的问题,答案在于你试图在这里实现的目标.
解决方案1.您提供的将使您的IDependency成为主工厂接口,所有实例都将使用IDependency接口实现,这将为您提供大量可伸缩性 – 您将能够使用IDependency接口在未来初始化其他类功能,这是工厂设计模式的经典使用和实现. 解决方案2.您提供的将使您的MainClass很好,程序的主类,您将处理主类中的实例及其行为,这里的优点是您可以通过IDependency管理所有实例,并且唯一的事情你在MainClass中处理它们的逻辑,MinaClass将是你的实例转换器,基类的所有基本更改都将在接口IDependency中进行,这是Dependency Inversion的经典解决方案. 问题仍然存在,你想要实现的目标.考虑这个问题和两种可能性,你有答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- [react-native开发中错误]SDK location not fo
- Match One of Several Alternatives (匹配多个选
- Flash 平台应用性能优化官方文档
- 在从C转换为C#的代码中,我应该使用什么而不是mem
- ruby-on-rails – 通过Capybara(v2)与Bootstrap模
- JSON.parse()和JSON.stringify()
- c# – 针对WSDL进行编程,无需访问实际的Web服务
- WSTOPSIG(状态)== 22&WTERMSIG(状态)== 9;这
- DOJO的一个例子
- xcode 6中的自定义NSValueTransformer与swift