2011-03-11 4 views
3

MVVM CRM 애플리케이션이 있다고 가정 해 보겠습니다.저장소 설계 패턴 지침

리포지토리를 통해 메모리에 여러 고객 개체가 있습니다.

GUI에서 기존 MVVM 작업과 관련이없는 작업을 처리하기에 적합한 장소는 무엇입니까?

예를 들어 몇 분마다 주소가 유효한지 확인하고 그렇지 않은 경우 알림을 팝업으로 표시한다고 가정 해 봅니다. 또는 매시간 전자 메일 업데이트를 보내려합니다. 또는 특정 시간에 고객에게 전화하라고 상기시키기 위해 팝업 창이 나타나기를 원할 수도 있습니다.

이 로직은 어디로 이동합니까? 그것은 GUI/액션 지향적 인 것이 아니며 저장소에 적합한 논리가 아닙니다.

+2

이들은 서비스라고 불리며, 각 서비스는 ValidAddressCheckingService 또는 CustomerCallRemindingService 또는 그와 유사한 서비스입니다. 이러한 서비스에 저장소를 삽입하고 원하는 것을 수행하십시오. – epitka

+0

쿨, 이것이 내가 찾고있는 것입니다. 고맙습니다! – thebfactor

답변

1

내 MVVM 구현이 사용자 입력의 직접적인 결과가 아닌 GUI 관련 작업을 어떻게 처리해야합니까? (내가 잘못 해석 한 경우 알려주십시오.)

설명하는 작업은 대부분 타이머에 의해 조정됩니다. 타이머 틱을 "사용자 작업"으로 구성하면 기존의 명령 모델과 크게 다르지 않습니다.

이것은 뷰 모델이 타이머를 관리하고 응답으로 자체를 업데이트한다는 것을 의미합니다. 알림이 사용자에게 표시되어야 할 때 속성을 설정할 수 있으며보기가 해당 속성의 변경 사항에 응답하고 팝업을 표시 할 수 있습니다. 중요한 개념은 뷰 모델이 동작을 조정할 책임이 있으며 뷰는 뷰 모델의 현재 상태를 단순히 반영한다는 것입니다.

(시간당 이메일 업데이트가 사용자와 상호 작용하지 않는다는 의미에서 GUI 관련 작업, 아니다, 나는 왼쪽 그 믹스 중 하나.) 구현하는 객체로

@epitka는 서비스의 개념을 설명함으로써 머리에 못을 박았다. 일반적으로 서비스는 여러 저장소 또는 다른 서비스에서 동작을 조정합니다. 이들은 특정 특정 엔터티에 할당 할 수없는 도메인 별 논리를 나타냅니다.