据我了解,这个问题与如何使用一些适当的默认值公开松散耦合的API有关。在这种情况下,您可能具有良好的 Local Default
,在这种情况下,依赖项可以视为可选的。处理 可选依赖项的 一种方法是使用 属性注入 而不是 构造函数注入
-实际上,这是属性注入的典型场景。
但是,Bastard Injection的真正危险是当默认值是 Foreign Default时
,因为这将意味着默认构造函数拖拽不希望的耦合到实现默认值的程序集。但是,据我所知,预期的默认值将来自同一程序集,在这种情况下,我看不到任何特殊的危险。
无论如何,您也可以考虑我前面的回答之一中所述的Facade:依赖项注入(DI)“友好”库
顺便说一句,这里使用的术语是基于我的书中的模式语言。



