有 2 个构造函数是正确的,一个用于依赖注入,另一个用于解决注入?

Fri*_*ren 5 c# constructor code-injection

我的类中有 2 个构造函数:

public class CacheWebServices : ICacheWebService
    {
        public ICache apiConnector { get; set; }

        public CacheWebServices(ICache ApiConnector)
        {
            apiConnector = ApiConnector;
        }

        public CacheWebServices()
            : this(new VuelingCache())
        { }
    }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个依赖于 IVuelingCache 的构造函数和一个默认构造函数,该默认构造函数创建一个实例以传递给第一个构造函数。这是对的吗?这样我就摆脱了工厂类。

Ode*_*ded 5

这是确保您拥有有效实例的一种方法IVuelingCache- 该模式有一个名称 - 穷人的依赖注入。

有些人 认为 是一种反模式,因为您将“默认”实现硬编码到代码中。