kas*_*szm 5 .net c# dependency-injection
我正在阅读 Mark Seemann 所著的《.NET 中的依赖注入》一书,其中我偶然发现了属性注入这一主题。
正如书中描述的使用属性注入的条件是:
1)当依赖注入的使用是可选的时
2)当我们有一个好的本地默认值时
当我在互联网上搜索“本地默认”时,我没有得到这个概念的任何重要定义。
在本书的两个版本中, 的定义和描述Local Default可以在第 4.2.2 节中找到。第二版指出:
\n\n定义:本地默认值是源自同一模块或层的依赖项的默认实现。
\n本地默认值
\n当您开发具有Dependency 的类时,您可能会考虑该Dependency的特定实现。如果您正在编写访问存储库的域服务,那么您很可能计划开发使用关系数据库的存储库的实现。
\n使该实现成为正在开发的类使用的默认实现是很诱人的。但是,当在不同的程序集中实现这样的预期默认值时,将其用作默认值意味着创建对该其他程序集的硬引用,这实际上违反了第 1 章中描述的松散耦合的许多好处。这种实现与本地实现相反默认\xe2\x80\x94it\ 是外国默认值。具有对外部默认值的硬引用的类正在应用Control Freak反模式。我们将在第五章讨论控制狂。
\n相反,如果预期的默认实现是在与消费类相同的库中定义的,则不会遇到该问题。对于存储库来说不太可能出现这种情况,但这种本地默认值通常作为策略模式的实现而出现。
\n
注意:第一版中“本地默认值”的文本略有不同,但差别不大。我使用了第二版的文本,因为我没有可以轻松复制/粘贴的形式的第一版文本。
\n提示:由于您正处于本书的开头,我的建议是切换到第二版,因为它是最新版本,并且是本书的整体改进。这篇博文描述了马克和我在该版本中所做的改进。
\n| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |