2011-10-20 11 views
8

프리즘을 사용할 때 상호 작용 요청 객체가 상호 작용 서비스 패턴을 사용하는 것이 더 좋음을 알고 싶습니다. 나에게있어 Interaction Service는 간단한 메시지 팝업을 사용하는 경우와 텍스트 콘텐츠 만 변경하려는 경우에 사용해야합니다. 반면 UI가 더 복잡 할 때 상호 작용 요청 객체가 더 적합합니다. 하지만 상호 작용 서비스는 구현하기가 훨씬 쉽고 코드가 적습니다. 당신은 어떻게 생각하십니까?상호 작용 서비스와 상호 작용 요청 객체

+0

나는 동일한 질문이있다. 누군가... – dFlat

답변

1

은 내가 상호 작용 서비스 등 제 생각에는

으로 메시지와 같은 일반적인 상호 작용 행동에 적합 할 수 있다는 것을 당신과 동의, 그것은 클래스의 책임으로 요약된다. 다른 말로하면, ViewModel 또는 뷰에서 어떤 유형의 상호 작용이 발생해야하는지 지정해야할까요? 그것은 행동 ShowMessageBox의 유형을 생산하기 위해 무슨 일 인터페이스를 관찰에서 매우 명백

public interface IInteractionService{ 
    MessageBoxResult ShowMessageBox(string messageBoxText, string caption, MessageBoxButton button); 
} 

:

는 기본 상호 작용 서비스 인터페이스를 고려하십시오. 이것은 ViewModel이 어떤 유형의 상호 작용 동작이 발생할 것으로 예상 하는지를 지정하는 관점에서 어느 정도의 제어를 제공합니다. 이 접근법의 문제점은 ViewModel이 이제 IInteractionService에 대한 의존성을 가지며 상호 작용 행동 기대치를 명시 적으로 나타냅니다. 이로 인해 ViewModel의 재사용이 줄어들 수 있습니다.

상호 작용 객체를 사용하면 상호 작용 동작의 책임을보기에 더 많이 배치 할 수 있습니다. 즉, ViewModel에 직접 영향을주지 않고 상호 작용의 동작 및 모양을 변경할 수 있습니다. 예를 들어 상호 작용 요청의 V1은 간단한 MessageBox를 표시 할 수 있습니다. V2는 간단한 버튼 클릭만으로 더 많은 사용자 상호 작용을 요구하는보다 복잡한 대화 일 수 있습니다. 이러한 종류의 상호 작용 동작 변경은 ViewModel을 수정하지 않고도 관리 할 수 ​​있습니다. 대화식 요청에 연결된보기의 동작 또는 모양을 바꾸거나 옵션을 바꾸려는 프로젝트에 UI 디자이너가있는 경우 유용 할 수 있습니다.

원하는 경우 두 가지 전략을 모두 사용할 수 있습니다. 즉, 일반적인 상호 작용 동작을위한 상호 작용 서비스와보다 복잡한 동작을위한 상호 작용 객체입니다.

요약하면 상호 작용 서비스는 사용하기가 더 쉽지만 상호 작용 객체는 ViewModel을 더 재사용 할 수 있습니다.

2

상호 작용 서비스를 사용하여 메시지 상자를 표시하는 데 따르는 커다란 단점은 부모 창이되거나 오히려 부족합니다.

보기 모델 또는 서비스 구현에서 메시지 상자의 부모로 어떤 창을 제공해야합니까? Application.Mainwindow를 선택하면 전체 응용 프로그램 레이아웃에 대한 엄청난 가정이 생깁니다.

알고있는 프로세스의 유일한 엔터티는 이며 상호 작용을 표시하는 방법은입니다. 메시지 상자 또는 인 페이지 오버레이 사용 여부

상호 작용 서비스를 사용하는 경우 유효한 인수가별로 없습니다. 자주 사용되는 것은 더 쉽다는 것입니다. 이것은 사실 일 수 있지만 수행해서는 안되는 많은 다른 사항들, 예를 들면. 코드 뒤에, 등등.