Я работаю над приложением ASP.NET MVC, и у меня появилась привычка вставлять то, что кажется полезным и удобным средством получения, в мои классы моделей / сущностей.
Например:
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); }
}
}
Мне интересно, что люди думают о FullName
и FormattedPhoneNumber
добытчиках.
Они позволяют очень легко создавать стандартизированные форматы данных во всем приложении, и, похоже, они сохраняют много повторяющегося кода, но можно с уверенностью утверждать, что формат данных - это то, что должно обрабатываться при отображении из модели в модель представления.
Фактически, я первоначально применял эти форматы данных на своем сервисном уровне, где я делаю свое отображение, но становилось бременем постоянно писать программы форматирования, а затем применять их во многих разных местах. Например, я использую «Полное имя» в большинстве представлений, и мне нужно напечатать что-то вродеmodel.FullName = MappingUtilities.GetFullName(entity.FirstName, entity.LastName);
повсюду казалось менее элегантной, чем просто печатать model.FullName = entity.FullName
(или, если вы используете что-то вроде AutoMapper, возможно, вообще ничего не печатать).
Итак, где вы проводите черту, когда дело доходит до форматирования данных. Это нормально для форматирования данных в вашей модели или это «запах шаблона»?
Примечание: у меня точно нет html в моей модели. Я использую помощники HTML для этого. Я строго говорю о форматировании или объединении данных (и особенно данных, которые часто используются).
PhoneNumber
вероятно, принадлежит к своему классу (который я сейчас реализовал). Но это FullName
был действительно тот, который побудил меня написать вопрос. Но мне интересно узнать, имеет ли смысл в общем случае форматировать / комбинировать данные и т. Д. В модели для вещей, которые будут применяться в масштабах всего приложения. Судя по ответам ниже, кажется, что это не анти-паттерн, но решение должно приниматься осторожно.