The main objective of the MVC design pattern is separation of concerns. It provides an isolation of the application’s presentation layer that displays the data in the user interface, from the way the data is actually processed. In other words, it isolates the application’s data from how the data is actually processed by the application’s business logic layer. The biggest advantage of the MVC design pattern is that you have a nice isolation of these components/layers and you can change any one of them without the rest being affected.
* The separation the three components, allows the re-use of the business logic across applications.
* Multiple User Interfaces can be developed without concerning the codebase.
* The developers of UI can focus exclusively on the UI screens without bogged down with business logic.
* The developer of Model/business can focus exclusively on the business logic implementations, modifications, updations without concerning the look and feel and it has nothing to with business logic.
* Business logic developers can build the classes, while the UI developers can involve in designing UI screens simultaneously, resulting the interdependency issues and time conservation.
* UI updations can be made without slowing down the business logic process.
* Business logic rules changes are very less that needs the revision/updations of the UI.
* Due to the separation of the model from the view, the user interface can display multiple views of the same data at the same time.
* It is easier to test code that implements this pattern.
* It promotes better code organization, extensibility, scalability and code re-use.
* It facilitates de-coupling the application's layers.