Est-ce une violation de la persistance igorance d'injecter une interface de dépôt dans un objet Entity Like this. En n'utilisant pas d'interface, je vois clairement un problème mais quand j'utilise une interface, y a-t-il vraiment un problème? Le code ci-dessous est-il un bon ou un mauvais modèle et pourquoi?Est-ce un anti-pattern ddd?
public class Contact
{
private readonly IAddressRepository _addressRepository;
public Contact(IAddressRepository addressRepository)
{
_addressRepository = addressRepository;
}
private IEnumerable<Address> _addressBook;
public IEnumerable<Address> AddressBook
{
get
{
if(_addressBook == null)
{
_addressBook = _addressRepository.GetAddresses(this.Id);
}
return _addressBook;
}
}
}
Le code est un exemple pur et ne repose sur aucun code réel, mais je suis d'accord le AddressRepository était un mauvais exemple – terjetyl
@JasonTrue, Qu'est-ce qui ne va pas avec une adresse étant une racine agrégée? Si plusieurs contacts partageaient la même adresse (par exemple, les contacts de la même société qui n'ont pas la propriété des adresses), comment modéliseriez-vous le modèle? Ils ne pourraient pas être des VO s'ils ont une identité unique. – smartcaveman