我開始在Android項目上實現MVP模式,並且在執行任何操作之前我有些疑慮應該在哪裏驗證字段。Android MVP對驗證有疑問
例如,如果我必須發送帶有三個字段(名稱,電子郵件,文本)的表單。 我應該驗證活動中的字段,還是應該將它們發送給演示者進行驗證?
如果與演示者的溝通只能通過正確的數據進行驗證,我還不能100%確定。
我開始在Android項目上實現MVP模式,並且在執行任何操作之前我有些疑慮應該在哪裏驗證字段。Android MVP對驗證有疑問
例如,如果我必須發送帶有三個字段(名稱,電子郵件,文本)的表單。 我應該驗證活動中的字段,還是應該將它們發送給演示者進行驗證?
如果與演示者的溝通只能通過正確的數據進行驗證,我還不能100%確定。
這要看,我的建議是,(而我通常做):
認爲它作爲一個前端和後端網站,雖然不完全一樣,它確實幫助你澄清混淆的概念。
你可以這樣做在活動 `private Presenter mPrensenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
mPrensenter.load(name,email,text);
}
});
}
@Override
public void onRightDataValidated(){
}`
則存在兩種接口的MainView和提交人:
public interface MainView{
void onRightDataValidated();
}
public interface Presenter{
void load(String name,String email,String text);
}
INT演示的IMPL,當數據需要是無效的負荷的方法,u可以使用MainView.onRightDataValidated回調,你可以在我的github中找到更多MVP Demo
感謝您的建議!我會嘗試使用「前端和後端」的方法。 –
雖然起初覺得在視圖層做一些次要的驗證邏輯是很誘人的,但我相信即使是這樣的邏輯也屬於表現層。在演示者層中更容易測試,並且存在明確的區別,並說明爲什麼您有兩層。如果不是完全愚蠢的話,視圖圖層保持漂亮。 –