Gri*_*xly 6 .net design-patterns dependency-injection anti-patterns
我正在阅读Mark Seemann的.NET中的依赖注入,我不能为我的生活让我的头脑缠绕:
虽然新关键字在涉及挥发性相关性时是一种代码味道,但您不必担心将其用于稳定依赖性.在新的关键字不是一般突然"非法",但你应该使用它来获得挥发性依赖实例避免.
也许是因为我仍然不能把我的脑袋缠绕在环境上下文中,而不仅仅是一个全局变量,但我只是没有得到作者所说的内容.
我真的很想从上到下理解DI,但是现在我被卡住了,这只是书中的1/3 ... Control-Freak反模式似乎是每一个曾经生活过的程序员...
有人有任何见解吗?
波动性(对我而言)衡量一个阶级需要改变的可能性.
理想情况下,您将类设计为对扩展开放但不接受修改(开放封闭原则).这并不总是可行的.你接近改变的那些类别比其他类别更不稳定.
NDepend(一个.Net静态分析指标工具)有一个名为" 不稳定"的指标,在我看来它是同义词.他们将此定义为:
不稳定性(I):传出耦合(Ce)与总耦合的比率.I = Ce /(Ce + Ca).该指标是程序集变化弹性的指标.该度量的范围是0到1,I = 0表示完全稳定的装配,I = 1表示完全不稳定的装配.
你不希望Stable类依赖于较不稳定的类.
至于决定注入与否,这听起来更像是一个阶级角色问题.从域驱动设计(DDD)类通常是实体(它们具有身份),服务(它们协调事物)或值(它们是不可变的和可比较的,如RED或100ml).
你会注入服务,你会在值上调用new.实体通常来自一个存储库(您注入),但在内部存储库会调用new.这有帮助吗?
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |