Cung cấp sự tách biệt rõ ràng các mối quan hệ giữa UI (Presentation layer), model (Transfer objects / Domain objects / Entities) và business logic (Controller).
Dễ dàng UNIT Test.
Cải thiện khả năng tái sử dụng model và view. Chúng ta có thể có nhiều view có thể trỏ đến cùng một model và ngược lại.