Refactor - Interface-first
Description
Cacodi 1.x implements an interface IDependencyResolver as a DependencyResolver. This is against the modern interface naming conventions - the interface should be named DependencyResolver and a factory for the default resolver should exist.
Rationale
Interface-fist lets users focus on the API and not the implementation. It simplifies testing and facilitates inversion of control.
Checklist
-
Refactor to be interface-first -
Add a factory constructing default instances -
Add a global default instance to the interface