VO(뷰 모델)와 DTO(데이터 전송 객체)의 차이점

3260 단어
카탈로그
  • VO(뷰 모델)와 DTO(데이터 전송 객체)의 차이점
  • 1.VO 및 DTO 개념
  • 2.VO 보기 모델의 필요성과 결합
  • 2.1 뷰 모델
  • 2.2 뷰 모델의 필요성
  • 2.3 보기 모형의 결합
  • 3.DTO의 필요성
  • 3.1 데이터 전송 개체
  • 3.2 DTO 데이터 전송 객체의 필요성
  • 4. VO와 DTO의 차이점
  • 4.1 DTO = 뷰 모델
  • 4.2 DTO≠ 뷰 모델
  • 5. AutoMapper의 사용 장면
  • 6. 소결
  • VO(뷰 모델)와 DTO(데이터 전송 객체)의 차이점


    1. VO와 DTO의 개념


    VO(View Object): VO는 뷰 모델, 뷰 객체, 레이어를 표시하는 데 사용되며 지정된 페이지(또는 어셈블리)의 모든 데이터를 캡슐화하는 역할을 합니다.예를 들어 전시층은 DTO를 남성에게 전송하여 멋쟁이(클라이언트1)로 표시하거나 멋쟁이(클라이언트2)로 표시한다.멋쟁이나 멋쟁이를 남성으로 변환하여 DTO 형식으로 서비스 포트를 요청합니다.
    DTO(Data Transfer Object): DTO는 전송 모델로 데이터 전송 대상이며 여기서 전시층과 서비스층 간의 데이터 전송 대상을 가리킨다.전시층 전파를 받은 성별남, 전시층 성별남으로 돌아간다.

    2. VO 보기 모델의 필요성과 결합


    2.1 뷰 모델


    전시층에 존재합니다.

    2.2 뷰 모델의 필요성


    보기 모델 VO는 클라이언트의 웹 페이지에 대응할 수 있다. 같은 DTO, 예를 들어 성별 남자, 여러 VO에 대응하여 표시할 수 있다. 즉, 여러 클라이언트에 대응할 수 있다. 예를 들어 VO1은 성별 남자를 잘생긴 남자로 표시하고 VO2는 성별 남자를 잘생긴 남자로 표시하는 등이다.

    2.3 보기 모형의 결합


    만약 하나의 DTO가 하나의 VO에 대응한다면 DTO=VO;그러나 만약에 한 DTO가 여러 VO에 대응한다면 전시층은 VO를 서비스층 대응 방법이 요구하는 DTO로 전환하여 서비스층에 전달해야 한다.이로써 서비스층과 전시층의 결합 효과에 도달한다.

    3. DTO의 필요성


    3.1 데이터 전송 개체


    하나의 DTO는 창고에서 되돌아오는 여러 개의 DO(Domain Object, 영역 모델)에 대응하는 json 그룹에 대응할 수 있으며, 여기서는 AutoMapper를 사용하여 자체적으로 어댑터를 할 수 있다.

    3.2 DTO 데이터 전송 객체의 필요성


    DTO는 MVC의 뷰를 위해 존재하는 모델이 아니라 프런트엔드 요청에 적응하기 위해 존재합니다.DTO 모형은 전방에서 온 요청 (이 요청은 전후단에서 분리된 페이지든 mvc에서 온 보기든) 을 DTO 모형에 봉인한 다음 서버 처리는 Entity Framework의 영역 모형으로 변환합니다.

    4. VO와 DTO의 차이점


    4.1 DTO = 뷰 모델


    하나의 DTO가 하나의 VO와 대응할 때 DTO = 보기 모형.DTO와 VO의 속성 값은 기본적으로 일치하고 그들은 보통 json 대상이기 때문에 이런 행동을 할 필요가 없다. 그러나 이것은 실현 차원의 사고라는 것을 잊지 마라. 디자인 차원에 있어 개념적으로 VO와 DTO가 존재해야 한다. 양자는 본질적인 차이가 있기 때문에 DTO는 서비스 층이 받아야 할 데이터와 되돌아오는 데이터이고 VO는 전시층이 표시해야 할 데이터를 대표한다.응용 시 전방에서 DTO를 VO로 포장할 수도 있고 서비스 측의 Controller 층, 서비스 층에서 VO로 포장할 수도 있다.VO를 DTO 동리로 변환합니다.이런 상황에서 실현할 수 있다. 전후단과 관련된 것은api의 URL과vo뿐이고 대다수 상황도 클라이언트만 있는 것이다.

    4.2 DTO≠ 뷰 모델


    하나의 DTO가 여러 VO에 대응할 때 DTO≠ 보기 모형.이때 앞에서 남성을 멋쟁이나 멋쟁이로 포장해 표시해야 한다.데이터를 요청할 때도 전방에서 잘생긴 남자나 멋쟁이를 남성으로 바꾸어 DTO 형식으로 서버를 요청해야 한다.

    5. AutoMapper의 사용 장면


    인터넷에서 AutoMapper의 사용 방법을 소개하는 것이 매우 많은데 여기서는 소개하지 않고 주로 장면을 사용한다.AutoMapper는 DTO 모델과 영역 모델 사이의 매핑입니다.AutoMapper는 DTO 모델과 영역 모델의 변환을 처리합니다.일반적인 방법은 DTO모델 C에 영역모델 A에 대응하는 DTO모델 A와 영역모델 B에 대응하는 DTO모델 B를 포함하고 서비스 측에서 각각 DTO모델 A와 DTO모델 B를 AutoMapper를 통해 영역모델 A와 영역모델 B로 전환하는 것이다.
    //      :
    
    public class PersonViewModel
    {
         public string FirstName{get;set;}
         public string LastName{get;set;}
    }
    
    //      :
    
    public class Person
    {
         public string Name{get;set;}
    }
    
    //         :
    
    public class MyDbContext : DbContext
    {
         public DbSet Persons{get;set;}
    }

    6. 소결


    1. DTO는 데이터를 전송하는 대상이고 어디에서'전송'을 하는지에 중점을 둔다. 전시층과 응용층은 전시층과 응용층 간의 데이터 상호작용만 하면 모두 Dto이다.2.1개의 DTO가 1개의 클라이언트에 대응하는 경우 DTO = 뷰 모델;1개의 DTO가 여러 클라이언트에 대응하는 경우 DTO≠보기 모델;

    좋은 웹페이지 즐겨찾기