Ich arbeite an einer ASP.NET MVC-App und habe mir angewöhnt, in meine Modell- / Entitätsklassen hilfreiche und praktische Informationen einzufügen.
Beispielsweise:
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); }
}
}
Ich frage mich, ob die Leute über das FullName
und die FormattedPhoneNumber
Getter nachdenken .
Sie machen es sehr einfach, standardisierte Datenformate in der gesamten App zu erstellen, und sie scheinen viel wiederholten Code zu speichern. Es kann jedoch durchaus argumentiert werden, dass das Datenformat bei der Zuordnung von Modell zu Ansichtsmodell zu berücksichtigen ist.
Eigentlich habe ich diese Datenformate ursprünglich in meiner Service-Schicht angewendet, wo ich mein Mapping durchführe, aber es wurde zu einer Last, ständig Formatierer schreiben zu müssen, um sie dann an vielen verschiedenen Stellen anzuwenden. ZB verwende ich in den meisten Ansichten "Vollständiger Name" und es model.FullName = MappingUtilities.GetFullName(entity.FirstName, entity.LastName);
schien viel weniger elegant als nur zu model.FullName = entity.FullName
tippen (oder, wenn Sie etwas wie AutoMapper verwenden, möglicherweise gar nichts zu tippen).
Wo ziehen Sie die Linie, wenn es um die Datenformatierung geht? Ist es "okay", Daten in Ihrem Modell zu formatieren, oder ist das ein "Mustergeruch"?
Hinweis: Ich habe definitiv kein HTML in meinem Modell. Ich benutze dafür HTML-Helfer. Ich spreche ausschließlich von der Formatierung oder Kombination von Daten (und insbesondere von Daten, die häufig verwendet werden).
PhoneNumber
gehört es wahrscheinlich zu einer eigenen Klasse (die ich jetzt implementiert habe). Aber FullName
war es wirklich der Grund, warum ich die Frage geschrieben habe? Ich bin jedoch daran interessiert herauszufinden, ob es im Allgemeinen sinnvoll ist, Datenformatierungen / -kämme usw. in das Modell aufzunehmen, um Dinge zu erreichen, die für die gesamte Anwendung gelten. Aus den nachstehenden Antworten geht hervor, dass dies kein Gegenmuster ist, aber die Entscheidung sollte sorgfältig getroffen werden.