1.表现与数据分离
图形界面程序:程序把数据通过图形展示给用户,用户通过操作修改数据,然后把修改的数据展现给用户。
为了更好的管理程序的复杂性,把图形界面与图形数据分离开来(解耦),实现职责分离,即为表现与数据分离。把管理用户界面的层次称为View,应用程序的数据为Model(包括数据以及对数据的直接操作)。
2.需要把view与model粘合在一起,出现了MV*模式。
(1)MVC(Model-View-Controller)模式
操作View后,Controller更新Model,Model更新后通过观察者模式更新View。
(2)MVP(Model-View-Presenter)模式
View与Model 通过Presenter通信,操作View后通过Presenter更新Model,Model更新后通过Presenter更新Model。
(3)MVVM(Model-View-ViewModel)模式
Model更新后ViewModel自动同步View,操作view后ViewModel自动同步Model。不需要像Presenter手动同步Model和View。
MVC->MVP->MVVM是一个不断优化的过程!