Model View presenter
Model Data Class View class presenter processing logic processing class
Note that there is usually an interface between presenter and view.
View (activity)
Package Com. examples; Import Com. Examples. Presenters. Presenter; Import Com. Examples. Views. iview; Public Class View Extends Activity Implements Iview { /** Called when the activity is first created. */ Presenter _ presenter; Public View () {_ presenter = New Presenter ( This ) ;}@ Override Public Void Oncreate (bundle savedinstancestate ){ Super . Oncreate (savedinstancestate); setcontentview (R. layout. Main); _ presenter. Action (Params) ;}@ override Public Void Setsomething (Params ){ // Iview Interface Method }}
Presenters
Package Com. Examples. presenters; Public Class Presenter { Private Iview _ view; Private Model _ model; Public Presenter (iview view) {_ view = View ;} // Constructor Public Void Action (Params ){ // Execute Processing _ View. setsomething (Params );}}
Views (Interface)
PackageCom. Examples. views;Public InterfaceIview {Public VoidSetsomething (Params );}
Model
PackageCom. example. model;Public ClassModel {string AAA;Public VoidSet (string s) {aaa=S ;}PublicString get () {ruturn AAA ;}}
Two blog posts are recommended:
Http://magenic.com/Blog/AnMVPPatternforAndroid.aspx
Http://jamespeckham.com/blog/10-11-21/MVP_on_Android.aspx