Je travaille sur une application ASP.NET MVC, et j'ai pris l'habitude de mettre ce qui semble être des getters utiles et pratiques dans mes classes de modèle / entité.
Par exemple:
public class Member
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
public string FullName
{
get { return FirstName + " " + LastName; }
}
public string FormattedPhoneNumber
{
get { return "(" + PhoneNumber.Substring(0, 3) + ") " + PhoneNumber.Substring(3, 3) + "-" + PhoneNumber.Substring(6); }
}
}
Je me demande si les gens pensent aux FullName
et aux FormattedPhoneNumber
getters.
Ils facilitent la création de formats de données standardisés dans l'application et semblent économiser beaucoup de code répété, mais on pourrait certainement affirmer que le format de données est quelque chose qui devrait être géré lors du mappage d'un modèle à un modèle de vue.
En fait, à l'origine, j'appliquais ces formats de données dans ma couche de service où je fais mon mappage, mais cela devenait un fardeau d'avoir constamment à écrire des formateurs, puis à les appliquer à de nombreux endroits différents. Par exemple, j'utilise "Nom complet" dans la plupart des vues, et avoir à taper quelque chose comme model.FullName = MappingUtilities.GetFullName(entity.FirstName, entity.LastName);
partout semblait beaucoup moins élégant que de simplement taper model.FullName = entity.FullName
(ou, si vous utilisez quelque chose comme AutoMapper, potentiellement ne rien taper du tout).
Alors, où tracez-vous la ligne en ce qui concerne le formatage des données. Est-il «correct» de mettre en forme les données dans votre modèle ou est-ce une «odeur de motif»?
Remarque: je n'ai certainement pas de code HTML dans mon modèle. J'utilise des aides html pour cela. Je parle strictement de formatage ou de combinaison de données (et en particulier de données fréquemment utilisées).
PhoneNumber
appartient probablement à sa propre classe (que j'ai maintenant implémentée). Mais FullName
c'est vraiment celui qui m'a motivé à écrire la question. Mais je suis intéressé à savoir si, en général, il est judicieux de mettre en forme / peigner les données, etc. dans le modèle pour les choses qui s'appliqueront à l'échelle de l'application. D'après les réponses ci-dessous, il semble que ce ne soit pas un anti-modèle, mais la décision doit être prise avec soin.