1. You should register all of your services and objects on bootstrap of your application. 2. You always should use factory pattern to instantiate your objects. 3. Service locator gives you another level of abstraction over your DI container, so you may change your container later time if needed.
Mahmud Hasan Software Engineer from Bangladesh