Tengo una pregunta sobre el patrón del mediador que quiero implementar en mi aplicación (usando C#). Mientras implementaba el patrón en mi código, encontré una dependencia circular. La estructura de las clases de la siguiente manera:Dependencia circular en el patrón del mediador usando C#
Mediator
y Colleague
los componentes/clases están en diferentes conjuntos y como patrón de mediador requiere que ambos componentes (clases) se usen entre sí. El problema surge al hacer referencia el uno al otro.
Considérese a continuación el código:
namespace Mediator
{
public abstract class IMediator
{
public IColleague colleague{get;set;}
void Register();
void Send();
}
public class MediatorA:IMediator
{
void Register(){//code here}
void Send(){//code here}
}
}
namespace Colleague
{
public abstract class IColleague
{
IMediator mediator;
void Send();
void Recieve();
}
public class ColleagueA:IColleague
{
void Send(){//code here}
void Recieve(){//code here}
}
}
como Mediater y colega se encuentran en diferentes espacios de nombres y ensamblados, la forma de resolver la dependencia circular?
Depende de las abstracciones, no de las concreciones. El mediador y el colega pueden estar en conjuntos separados, pero las interfaces deben estar en su propio conjunto. – MattDavey