I’ve seen several developers recently give or refer to presentations on “UI Design Patterns” and then proceed to talk about Model-View-Controller, Model-View-Presenter, and Model-View-ViewModel.
I think as an industry we need to push our language a bit.
MVC, MVP, and MVVM are UI Architecture Patterns; they refer how to organize UI-level code so that it is modular, cleanly separated, and easy to maintain.
On the other hand, UI Design Patterns, sometimes called UX Patterns, attempt to document common interaction challenges and the existing affordances or established design principles that have proven effective in addressing those challenges.
The difference, I would argue, is that architecture patterns focus on execution principles (how to organize code) while design patterns focus on experience principles (how to organize information, flow, visual cues, etc).
Here are a few examples to help illustrate the difference.
UI Architecture Pattern examples
- Recapping UI Architectural Patterns
- Choosing a UI Pattern (MVC, MVP, and ASP.Net MVC)
- WPF Apps With The Model-View-ViewModel Design Pattern