tags:

views:

170

answers:

1

What are your favourite patterns for writing a controller?

+1  A: 

This is rather a tough question as MVC is applied differently in different contexts. For example, for a desktop GUI, you might have listeners for event notifications of view changes but such behavior typically isn't used for Web forms (AJAX is changing this).

For the Web, you generally have:

  • Model: business logic
  • View: presentation logic
  • Controller: application logic

The controller should generally be minimalistic and if you find yourself pushing display information or business rules in it, there's probably a design flaw somewhere. Classic examples of such flaws in the controller are building HTML (view) or accessing the database directly (model).

I've written up a more thorough description of MVC on my O'Reilly blog. I have concrete examples there which can help explain things a bit more in depth.

Ovid