最近研究了一下android開發(fā)的一些框架,對于開發(fā)整體上具有一定好處剩盒,對于拓展測試修改也具有一定的優(yōu)勢甘萧。
Model:用于數(shù)據(jù)的增刪改查等,也包括一些數(shù)據(jù)對象
View:用于界面的顯示與用戶操作的接收财松,在Android里面View通常就是Actvitiy瘪贱,F(xiàn)ragment。
Presenter:是View跟Model的“中間人”辆毡,接收View的請求后菜秦,從Model獲取數(shù)據(jù)交給View。
下面自己嘗試進(jìn)行一個簡單的mvp框架的編寫
首先是一個登陸畫面
Model層:
public interface IModel { //一個接口
boolean login(String id,String pwd); //返回登陸是否成功的一個函數(shù)
}
具體的Model代碼實現(xiàn)
public class Model implements IModel{
@Override
public booleanlogin(String id, String pwd) {
if(id.equals("xp")&&pwd.equals("saber")){
return true;
}else{
return false;
}
}
}
Presenter層:
public interfaceIPresenter {
void onCreate();//在Activity Create的時候順便調(diào)用
boolean performOnClick(String id,String pwd); //按鈕點擊后的一個perform
}
具體實現(xiàn)
public class Presenter implements IPresenter {
private IMainActivity mainActivity;
private IModel model;
public Presenter(IMainActivity mainActivity){
this.mainActivity=mainActivity;
this.model=newModel() ;
}
@Override
public void onCreate() {
}
@Override
public boolean performOnClick(String id, String pwd) {
if(model.login(id,pwd)){
return true;
}
return false;
}
}
View層:
public interface IMainActivity {
}
public class MainActivity extends AppCompatActivity implements IMainActivity{
private Button button;
private EditText idEditText;
private EditText pwdEditText;
private IPresenter presenter;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
presenter=newPresenter(this);
presenter.onCreate();
button.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View view) {
if(presenter.performOnClick(idEditText.getText().toString(),pwdEditText.getText().toString())){
Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this,"fail", Toast.LENGTH_SHORT).show();
}
}
});
}
public voidinit(){
button= (Button) findViewById(R.id.button);
idEditText= (EditText) findViewById(R.id.idEditText);
pwdEditText= (EditText) findViewById(R.id.pwdEditText);
}
}
以上就是一個簡單的登陸mvp架構(gòu)的實現(xiàn)