) is an architectural pattern
, which at the same time is also a Multitier architecture
, used in software engineering
. In complex computer applications that present a large amount of data to the user, a developer often wishes to separate data (model) and user interface
(view) concerns, so that changes to the
user interface will not affect data handling, and that the data can be reorganized without changing the user
interface. The model-view-adapter solves this in a similar way to the model-view-controller
while having the added benefit of decoupling the view from the model such that a view can be used with multiple models. As such, only the adapter is familiar with both the model and the view. Additionally, multiple adapters may be created to change the way one view presents data for a given model.