Question

J'ai besoin de conseils sur l'endroit où tracer la ligne avec mes services et référentiels.

public class Contact
{
     public Guid Id {get;set;}
     public string Username {get;set;}
     public Guid? AvatarId {get;set;}
     public Avatar Avatar {get;set;}
}

public class Avatar
{
     public Guid Id {get;set;}
     public string FullSizeImagePath {get;set;}
     public string ThumbnailSizeImagePath {get;set;}
}

Supposons que le modèle Avatar ne sera utilisé que sur un modèle de contact et qu'il s'agit d'une propriété facultative sur le contact. Mon référentiel doit-il être responsable de l'ajout d'un avatar au contact ou la couche commerciale / service devrait-elle étendre cette fonctionnalité? On peut affirmer qu'il s'agit d'une exigence commerciale d'avoir un avatar, mais comme il fait partie du modèle, la couche de données devrait savoir comment y faire face.

J'ai proposé que nous puissions ajouter les fonctionnalités pour ajouter / mettre à jour et supprimer un avatar via le référentiel. La couche commerciale / service serait responsable de l'enregistrement des fichiers physiques, de la validation et de l'appel des méthodes appropriées sur le référentiel. Tout le référentiel se soucie de fixer le contact approprié et d'y ajouter un avatar.

Mon processus de pensée était que, puisque un avatar n'est utilisé que sur un contact, actuellement, nous étendrions le référentiel et ajouterions ainsi des fonctionnalités au DAL. Cela pourrait être utile pour une API distincte.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top