Recientemente he estado tratando de aprender COI, y tienen un par de preguntas basadas en el siguiente código:estoy confundido acerca de abstracciones de interfaz cuando se utiliza COI
public class WarriorModule : NinjectModule
{
public override void Load()
{
Bind<IWeapon>().To<Sword>();
Bind<Samurai>().ToSelf();
}
}
estoy teniendo problemas para comprender el nuevo concepto de interfaces. Antes de crear una interfaz como IRunnable
, implementando la función void Run()
. Con IoC, ahora estoy viendo una interfaz como algo que solo se asigna a una sola clase concreta. Suponiendo que, , ¿cómo puedo mapear múltiples clases concretas en una interfaz? Sigo leyendo que puede asignar múltiples interfaces a una sola clase concreta, pero no al revés (a menos que sea aquí donde entra en juego la asignación contextual).
Suponiendo que las interfaces solo se asignan a un único objeto, ¿cuándo debería crear una interfaz en lugar de tener un objeto vinculado a sí mismo? De cualquier forma, ¿tendrá que cambiar la misma pieza de código cuando la asignación sea correcta?
Editar: Marqué la respuesta que hice porque me ayudó personalmente. Ambos comentarios son igualmente informativos.
Esto me ayudó a retomar el rumbo: "hay una tendencia a que el código débilmente acoplado produzca una sobreabundancia de interfaces 1: 1". Gracias por eso. Siento que los conceptos finalmente se están hundiendo después de tres días. – Phil