Change is inevitable, so be prepared.
Dependency injection is a software design pattern in which one or more dependencies (or services) are injected, or passed by reference, into a dependent object (or client) and are made part of the client's state. The pattern separates the creation of a client's dependencies from its own behavior, which allows program designs to be loosely coupled and to follow the dependency inversion and single responsibility principles.
It directly contrasts the service locator pattern, which allows clients to know about the system they use to find dependencies.
Ninject allows you to embrace change in your software's design, so it will be easier to adjust it to match changing business needs and expectations. Ninject helps you use the technique of dependency injection to break your applications into loosely-coupled, highly-cohesive components, and then glue them back together in a flexible manner.