MVC is the correct answer.
Model View Controller [aka MVC, aka Model 2 architecture]
* You want to keep Views/presentation, Controls/business logic, and Models/data access separate.
Allows multiple view types for the same info
Decouples presentation, business logic, and data access components
A centralized access point for presentation-tier request handling.
* You want to avoid duplicate control logic.
* You want to apply common logic to multiple requests. (IF)
* You want to separate system processing logic from the view. (MVC)
* You want to centralize controlled access points into your system. (IF)
Centralizes control (IF)