Definition
The Translator Component is the mediator between Model and View in UI architectural patterns. It handles the interaction logic and data transformation between the two layers.
flowchart LR subgraph View V[View] end subgraph Translator T[Translator Component] end subgraph Model M[Model] end V <-->|events + UI data| T T <-->|business data| M
Responsibilities
- Mediation: Coordinates between Model and View
- Transformation: Converts Model data for View display
- Input Handling: Processes user input from View
- State Management: Manages UI state (in some patterns)
Translator Types by Pattern
| Pattern | Translator Name | Primary Role |
|---|---|---|
| MVC | Controller | Handles input, updates Model |
| MVP | Presenter | Handles UI logic, formats data |
| MVVM | ViewModel | Exposes state, data binding |
| MVVM-C | ViewModel + Coordinator | State + navigation |
| VIPER | Presenter + Interactor + Router | Separated concerns |
Key Characteristics
- No Direct View-Model Communication: Translator ensures View and Model never interact directly
- Testability: Translator can be tested without UI
- Single Responsibility: Each translator type has distinct responsibilities
Evolution
Evolution of Translator Components
Translators evolved from simple Controllers (MVC) to more specialized components:
- Controller: Input-focused
- Presenter: View-focused (formats everything for View)
- ViewModel: Binding-focused (exposes observable state)
- Interactor: Business-logic-focused (VIPER)