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
우아해 보였습니다.
따라서 데이터 형식과 관련하여 선을 어디에서 그리는가? 모델에서 데이터 형식을 지정하는 것이 "좋아"입니까, 아니면 "패턴 냄새"입니까?
참고 : 내 모델에는 HTML이 없습니다. 나는 그것을 위해 HTML 도우미를 사용합니다. 나는 데이터 (특히 자주 사용되는 데이터)의 형식을 지정하거나 결합하는 것에 대해 엄격하게 이야기하고 있습니다.
PhoneNumber
아마도 (지금 구현 한) 자체 클래스에 속할 것입니다. 그러나 FullName
실제로 질문을 작성하도록 동기를 부여한 사람이었습니다. 그러나 일반적으로 앱 전체에 적용 할 항목에 대해 데이터 형식 / 조합 등을 모델에 넣는 것이 합리적인지 여부에 관심이 있습니다. 아래 답변에서 이것은 반 패턴이 아닌 것처럼 보이지만 신중하게 결정해야합니다.