MVVM에 대해 고찰

1964 단어 UI 아키텍처MVVM
MVVM에 대해 조사해 보고, 얻은 이해를 정리해 보겠습니다.
달리기이지만 써 보겠습니다.
돌진 곳이 많이 있을까 생각합니다만, 지적해 주시면 고맙습니다.
생각이 확실해지는 대로, 기사를 새롭게 재작성하고 싶습니다.

MVVM



각 클래스가 공개 인스턴스 변수를 관리하는 것으로, 화면 상태의 관리를 안전하게 실시하는 아키텍처입니다.



보기



ViewModel 에 설정된 공개 인스턴스 변수에 맞추어 외형을 구성하는 책임을 가지는 클래스군입니다.

[할 수 있는 일]
  • ViewModel에 자신을 Observer로 등록 할 수 있습니다
  • ViewModel로부터 파라미터 변경의 통지를 받을 수 있다
  • ViewModel의 파라미터를 참조할 수 있다
  • 화면의 외형을 공개 인스턴스 인수로 갖는
  • 사용자로부터의 액션을 받을 수 있다
  • ViewModel에 동작을 요구할 수 있다 (기본적으로는 횡류해)

  • ViewModel



    유저에게 보여주는 정보를 공개 인스턴스 변수로서 가지고 관리하는 책임을 가지는 클래스군입니다.

    [할 수 있는 일]
  • Model에 자신을 Observer로 등록 할 수 있습니다
  • 모델에서 매개 변수 변경 알림을받을 수 있습니다
  • Model 매개 변수를 참조 할 수 있습니다
  • 자체 클래스의 매개 변수를 업데이트하고 View에 변경 사항을 알립니다.
  • View로부터의 동작 요구를 메소드 호출의 형태로 받을 수 있다
  • 각 Model에 동작을 의뢰할 수 있다

  • 모델



    API 액세스, 주요 메모리, CoreData 관리 책임

    [할 수 있는 일]
  • API 액세스, 주요 메모리, CoreData에 액세스 요청에 액세스 할 수 있습니다.
  • 자체 클래스의 매개 변수를 업데이트하고 ViewModel에 변경 사항을 알립니다.
  • ViewModel로부터의 동작 요구를 메소드 호출의 형태로 받을 수 있다

  • 장점과 단점


  • 장점
  • 각 클래스는 자체 클래스의 공개 매개 변수 관리에만 집중할 수 있습니다 (다른 클래스의 동작을 의식 할 필요가 없음).
  • 클래스 내에서 역할이 닫혀 있기 때문에 테스트하기 쉽다 (아마)
  • 비즈니스 로직 실행과 화면 제어를 혼동하지 않습니다

  • 단점
  • 관찰자 동기화에서 벗어난 화면 구성을 넣을 수 없습니다
  • 동작의 흐름이 보이기 어려워진다


  • 기타


  • Model -> ViewModel -> View로의 정보 흐름이 리액티브 프로그래밍과 겹칩니다
  • 이 구성으로 구현하면 void를 출력으로 하는 메소드가 대부분이 된다
  • 참고문헌
  • MVVM의 모델과 관련된 오해

  • 좋은 웹페이지 즐겨찾기