Estoy confundido acerca de las abstracciones de la interfaz cuando uso IoC
Recientemente he estado tratando de aprender IoC y tengo un par de preguntas basadas en el siguiente código:
public class WarriorModule : NinjectModule
{
public override void Load()
{
Bind<IWeapon>().To<Sword>();
Bind<Samurai>().ToSelf();
}
}
Tengo problemas para comprender el nuevo concepto de interfaces. Antes crearía una interfaz comoIRunnable
, implementando la funciónvoid Run()
. Con IoC, ahora estoy viendo una interfaz como algo que solo se asigna a una sola clase concreta. Asumiendo que,¿Cómo mapearía múltiples clases concretas a una interfaz? Sigo leyendo que puedes asignar múltiples interfaces a una sola clase concreta, pero no al revés (a menos que sea aquí donde entra en juego el mapeo contextual).
as interfaces de Asumir solo se asignan a un solo objeto, ¿Cuándo debería crear una interfaz en lugar de tener un objeto unido a sí mismo? De cualquier manera, ¿tendrá que cambiar el mismo código cuando una asignación cambia correctamente?
Edit: Marqué la respuesta que hice porque me ayudó personalmente. Sin embargo, ambos comentarios son igualmente informativos.