Android APP开发实战:从规划到上线全程详解
上QQ阅读APP看书,第一时间看更新

10.2 MVP架构

MVP(Model-View-Presenter)即模型-视图-表示器。在MVP中View并不直接和Model交互,它们之间的通信是通过Presenter(相当于MVC中的Controller)来实现的。

在MVP模式里,View主要实现界面显示和处理用户操作,如点击或输入等功能。除此之外就不应该有更多的内容,绝不容许直接访问Model,这就是与MVC很大的不同之处。

View是用户看到并与之交互的界面,Android系统中主要指Activity或Fragment,其含有一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作转给Presenter实现,最后Presenter调用View逻辑接口将从Model获取的数据返回给View。Presenter主要作为沟通View和Model的桥梁,它承接View传来的用户需求,完成一些业务逻辑的处理,并将从Model层获取的数据返回给View层,使得View和Model间没有耦合,也将业务逻辑从View层抽离出来;Model主要提供数据存取功能,Presenter通过Model层存储和获取数据。

如图10-2所示是MVP框架图。

图10-2

在MVP中,所有的逻辑都在Presenter层实现,这层的负担较重,而且相比MVC会多出许多接口方法。