隨手擼個發出來:
V:界面層
//界面層需要實現P.View方法,然后重寫P.View中的方法;M層給的數據就在這些個方法的參數中;
// 還要獲取到P.Provide的實例,使用P.Provide去調用M層的方法;
public class ActivityDemo extends AppCompatActivity implements DemoP.View {private DemoP.Provide provide;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_demo);new DemoM(this);provide.start();}@Overridepublic void showMessage(String msg) {Log.i("mvp", "showMessage: "+msg);}@Overridepublic void Provide(DemoP.Provide m) {provide = m;}}
P:連接層
public interface DemoP {//提供界面interface View{void showMessage(String msg);void Provide(DemoP.Provide m);}//提供信息interface Provide{void start();}
}
M:數據層
// 數據層需要實現P.Provide,然后重寫P.Provide;V層就要調用你的這些方法;
// 還要獲取到P.View的實例,使用P.View把你處理好的數據返回給V層;
public class DemoM implements DemoP.Provide{private DemoP.View view;public DemoM(DemoP.View v){view = v;view.Provide(this);}@Overridepublic void start() {StringBuffer ss = new StringBuffer();for (int i = 0; i < 10; i++) {ss.append("\n--"+i);}view.showMessage(ss.toString());}
}
如果剛接觸MVP看著有疑惑,就照著擼一遍,大致就能懂了;
還可以看看封裝一下的:MVP案例