There is a pattern called Constructor injection. This pattern is mainly useful for unit testing and sharing the logic. Here is an example
public class SomeClass
{
private ISomeInterface _someInterface;
public SomeClass() : this (null){} //here mostly we pass concrete implementation
//of the interface like this( new SomeImplementation())
public SomeClass(ISomeInterface someInterface)
{
_someInterface = someInterface;
//Do other logics here
}
}
As you see here, unit tests will be easy by passing fake implementation. In addition, the logic is shared ( DRY). And Do all the logic inside the constructor which takes the highest number of parameters
But in your case, null is passing, so that is a context based. I have to know what your context is.