2012-02-14 7 views
0

큰 webforms 애플리케이션을 작성 중이며 MVP 패턴을 사용하고 있습니다. 신청서는 대출 신청서이며 사용자는 많은 질문에 답변해야합니다. 내 문제는 한 페이지에 약 15-20 개의 질문이있을 수 있고 그 가시성은 이전 답변에 달려 있다는 것입니다.MVP 디자인 딜레마

그래서 사용자가 질문 "A"에 응답 할 때마다보기는 질문 "B"를 표시할지 숨길지를 처리하는 발표자의 SetVisabilityB()를 호출 할 수 있습니다. 지금까지는 그렇게 좋았지 만 질문 "B"의 대답은 "C"질문을 표시하거나 숨 깁니다. 사용자가 질문 A에서 자신의 의견을 변경하면보기는 SetVisabilityB() 및 SetVisabilityC()를 호출해야합니다. 나는 하나의 질문에 대해 5-6 개의 다른 SetVisability 메서드를 호출해야하는 곳을 가지고 있기 때문에 조금 더러워졌습니다.

모든 질문에 대한 가시성을 업데이트하는 "전역"SetVisability 메서드를 사용해야합니까? 각 답변마다 또는 이것을 해결할 더 좋은 방법이 있습니까?

답변

1

내 주된 문제점은보기에 질문을 표시하고 숨기는 비즈니스 로직이 포함되어 있다는 것입니다. 가능한 한 멍청한 시각이어야하며, 이러한 결정을 내리는 발표자 여야합니다.

발표자에게 질문에 대한 답변을 표시하고 질문 번호를 전달하는보기가 있습니다. 발표자는 필요에 따라 질문을 숨기거나 표시 할 수 있습니다. 이것은 case 문 형태를 취할 수 있습니다. 또는 상황이 어리 석음으로 복잡 해지면 상태 시스템을 사용하도록 전환 할 수 있습니다.