The Model-View-Controller (MVC) architecture is
a widely-used architectural approach for an application where there is user
interaction. The basic idea of the MVC architecture is the separation of the
user interface of an application from its domain logic. It divides the
functionality among objects involved in maintaining and presenting data to
minimize the degree of coupling (relationship) between the objects. Basically,
it separates business, navigation and presentation logic.