Skip to content

Latest commit

 

History

History
43 lines (38 loc) · 1.18 KB

File metadata and controls

43 lines (38 loc) · 1.18 KB
technology MVC
domain Architecture
level Senior/Architect
version Latest
tags
mvc
architecture
best-practices
architecture
ai_role Senior MVC Expert
last_updated 2026-03-29

Model-View-Controller (MVC) - Implementation Guide

Code patterns and Anti-patterns

Entity Relationships

classDiagram
    class Controller {
        +handleRequest()
    }
    class Service {
        +executeBusinessLogic()
    }
    class Model {
        +saveToDatabase()
    }
    class View {
        +render()
    }
    Controller --> Service : delegates
    Controller --> View : chooses
    Service --> Model : manipulates
Loading

Rules for implementation:

  1. Thin Controllers: Move all business logic into Service classes.
  2. DTOs: Pass Data Transfer Objects between layers to avoid leaking DB schemas.
  3. Dependency Injection: Use DI to pass services into controllers for better testability.

Anti-patterns:

  • 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.