title: In the Model View Presenter pattern, can a presenter take and use two different view interfaces at the same time?
body: <p>I'm curious about the situation where you have a user control that you want to reuse throughout an application, but you also have a page or other control that also needs a presenter.  </p>
  
  <p>So say I have an upload view and control</p>
  
  <pre><code>public partial class UploadControlView : System.Web.UI.UserControl, IUploadView
  </code></pre>
  
  <p>but I also have a page view</p>
  
  <pre><code>public partial class ExcelProcessorView : System.Web.UI.Page, IExcelProcessorView
  </code></pre>
  
  <p>The upload control would be on the ExcelProcessor page, so that the user can upload a file which is handed off to some excel processing business logic.</p>
  
  <p>So I have a presenter,</p>
  
  <pre><code>public class ExcelUploadAndProcessPresenter : IUploadPresenter
  </code></pre>
  
  <p>In the ExcelProcessorView I would wire up the presenter as follows:</p>
  
  <pre><code>protected void Page_Load(object sender, EventArgs e) 
      {
          ExcelUploadAndProcessorPresenter presenter = 
              new ExcelUploadAndProcessorPresenter(this, uploadControl);
          this.AttachPresenter(presenter);
          uploadControl.AttachPresenter(presenter);
          //init etc...
      }
  </code></pre>
  
  <p>Is this a correct use of the MVP pattern?</p>
  
  <p>I'm trying to figure out what is the best practice for handling a many views to one presenter relationship.  Can MVP have a many to one relationship in this fashion.  As an alternate question I would also like to know if the MVP pattern can/should handle a situation where you have many presenters and many views (or should you only have one presenter) ?</p>
  
  <p>If you see any problems with my interpretation of MVP in general, by all means go ahead and point that out.</p>
  
  <p>Thanks for reading!</p>