2009-02-04 6 views
2

응용 프로그램 전체에서 재사용하려는 사용자 정의 컨트롤이있는 상황에 대해 궁금해하지만 프레젠터가 필요한 페이지 나 다른 컨트롤도 있습니다.모델 뷰 발표자 패턴에서 발표자는 동시에 두 개의 다른보기 인터페이스를 사용하고 사용할 수 있습니까?

그래서 내가 업로드보기 및 제어

public partial class UploadControlView : System.Web.UI.UserControl, IUploadView 

을 가지고 있지만 사용자가 업로드 할 수 있도록 나는 또한, 업로드 컨트롤이 ExcelProcessor 페이지에있을 것

public partial class ExcelProcessorView : System.Web.UI.Page, IExcelProcessorView 

페이지 뷰가 있다고 가정 해 어떤 사람에게 넘겨주는 파일은 처리하는 비즈니스 논리를 능가합니다. ExcelProcessorView에서 그래서 발표자가

,

public class ExcelUploadAndProcessPresenter : IUploadPresenter 

다음과 같이 내가 발표자를 연결할 것 :

protected void Page_Load(object sender, EventArgs e) 
    { 
     ExcelUploadAndProcessorPresenter presenter = 
      new ExcelUploadAndProcessorPresenter(this, uploadControl); 
     this.AttachPresenter(presenter); 
     uploadControl.AttachPresenter(presenter); 
     //init etc... 
    } 

이가 MVP 패턴의 올바른 사용인가?

하나의 발표자 관계에 대해 여러보기를 처리하는 가장 좋은 방법은 무엇인지 알아 내려고하고 있습니다. MVP가 이러한 방식으로 다 대일 관계를 가질 수 있습니까? 다른 질문으로, MVP 패턴이 많은 발표자와 많은 뷰가있는 상황 (또는 한 명의 발표자 만 있어야 함)을 처리 할 수 ​​있는지 여부를 알고 싶습니다.

MVP에 대한 전반적인 해석에 문제가있는 경우 꼭 그 점을 지적하십시오.

읽어 주셔서 감사합니다.

답변

2

보기 및 제어가 동일한 논리를 사용하는 방법에 대해 더 자세히 설명 할 수 있습니까? 나는이 문제가있는 시나리오를 상상할 수 없다. 논리가 분리되어 있다면 두 명의 발표자를 사용할 것이라고 생각합니다.

그러나 동일한 모델 (예 : CRUD 화면)을 표시하는 여러보기에 대해 발표자 만 재사용하지만 한 발표자가 여러보기/컨트롤을 처리 할 수있는 이유는 없습니다. 하나의보기가 동일한 발표자의 다른보기를 호스팅하는 경우 으로 다시 사용하지 않아야하는 이유를 생각할 수 없습니다 (예 : 목록 화면의 하단에 화면 만들기).

+1

나는 따라 가지 않습니다. 샘플 코드로 수정 사항을 게시 하시겠습니까? –

관련 문제