Ho un oggetto business critico GroupMembership
che rappresenta la relazione tra un utente e un gruppo. Ho impostato una politica architettonica che gli oggetti business critici dovrebbero evitare di fare riferimento direttamente l'un l'altro, e invece rappresentano solo le loro dipendenze con interfacce minimaliste. L'obiettivo di questo è promuovere un facile test unitario e minimizzare l'accoppiamento.
public class GroupMembership
{
public GroupMembership(Guid id, IIdentity group, IIdentity user)
{
Id = id;
Group = group;
User = user;
}
public Guid Id { get; private set; }
public IIdentity Group { get; private set; }
public IIdentity User { get; private set; }
}
Tuttavia, in questa classe, l'aderenza a questa regola sembra un po 'legalistica; al momento, non ha nemmeno alcun comportamento al test delle unità. D'altra parte, rompere questa convenzione da sola può fornire un precedente negativo per gli altri sviluppatori del progetto, che potrebbero non essere in grado di comprendere i principi architettonici.
Sto andando fuori bordo qui? O si atterrà alle regole che ho impostato per aiutare il progetto a mantenere la conformità architettonica? Le relazioni dirette sono un'eccezione nota all'utilizzo di soli riferimenti virtuali?