MVC (Model-View-Controller) is an architectural design pattern that encourages improved application organization through a separation of concerns. It divides an interactive application into three components: Model/ View and Controller. It enforces the isolation of business data ( Models) from user interfaces. With a third component (Controllers) traditionally managing logic, user-input and coordinating both the models and views. Each architecture component is built to handle specific development aspect of an application. MVC separates the business logic and presentation layer from each other.