Hocam yazdıgınız kodda mvp mantıgına ters seyler var. UserModel de yaptıgınızı presenterın icindede yapabilirsiniz. Ama dogru degil. Mvp nin kullanım amacı kodu katmanlara bölerek temiz kod (clean code) yazmak.
https://github.com/antoniolg/androidmvp
Bu orneği ben beğendim ilk başta bunu incelemenizi tavsiye ederim. Buna benzer yapabilirsiniz.
İyi çalışmalar
Bilgiler için teşekkür ederim. Verdiğiniz repo adresini inceledim ve basit bir mantıkla kendi sistemimi oluşturdum örnek amaçlı.
(Verdiğiniz repo adresinde ki gibi interactor kullanmadım ihtiyaç yok diye)
Şu an yaptığım sistem şu şekilde. Bi göz atıp eğer bu mantık doğru mu değil mi diye kontrol edebilir misiniz? Buna göre yaptığım uygulama da fazla ileri gitmeden mvp'ye çevireyim
Şimdiden teşekkür ederim.
Bunlar class'lar;
MainActivity.java public class MainActivity extends AppCompatActivity{
private mainPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
presenter = new mainPresenterImpl(this);
presenter.validate("admin","1234");
}
}mainPresenter.java public interface mainPresenter {
void validate(String email, String password);
}mainPresenterImpl.java // Sanırım mainPresenter'a ekleyebilirim bunu ancak ortalık karışmasın diye ayrı bir dosya daha iyi olur sanırım.
public class mainPresenterImpl implements mainPresenter {
private Activity activity;
mainModel mainModel = new mainModel();
public mainPresenterImpl(Activity activity) {
this.activity = activity;
}
@Override
public void validate(String email, String password) {
if (mainModel.validate(email,password).equals("success")){
activity.startActivity(new Intent(activity, HomeActivity.class));
}else{
Toast.makeText(activity,"Hatalı",Toast.LENGTH_SHORT).show();
}
}
} mainModel.java public class mainModel {
public String validate(String username, String password) {
if (username.equals("admin") && password.equals("1234")) {
return "success";
} else {
return "error";
}
}
}