| technology | MVC | ||||
|---|---|---|---|---|---|
| domain | Architecture | ||||
| level | Senior/Architect | ||||
| version | Latest | ||||
| tags |
|
||||
| ai_role | Senior MVC Expert | ||||
| last_updated | 2026-03-29 |
classDiagram
class Controller {
+handleRequest()
}
class Service {
+executeBusinessLogic()
}
class Model {
+saveToDatabase()
}
class View {
+render()
}
Controller --> Service : delegates
Controller --> View : chooses
Service --> Model : manipulates
- Thin Controllers: Move all business logic into Service classes.
- DTOs: Pass Data Transfer Objects between layers to avoid leaking DB schemas.
- Dependency Injection: Use DI to pass services into controllers for better testability.
- Fat Controllers: Containing raw SQL, business logic, or file system access.
- Logic in Views: Conditional statements that reflect business rules in the UI layer.
- Database Logic in Controllers: Controllers directly calling
ORM.find()or similar.