حرفه ای: دلیل این تو تعریف اینترفیس در مثالی که مطرح کردم رو نمیفهمم

ساخت وبلاگ

سلام دوستان. با پترن MVP تو اندروید به تازگی دارم کار میکنم. یه سورسی تو اینترنت دیدم تقریبا همشون شبیه هم بودن با این ساختار. ولی تو این مثال نوعی اینترفیس تعریف کرده که اصلا نمیفهمم قضیه چیه. درک نمیکنم. برنامه نویس این سورس چرا به این شکل اینترفیس تعریف کرده. ضمن اینکه از این اینترفیس ها به غیر از کلاس اصلی که اونها رو پیاده سازی کردن هیچ جای دیگه ای کاربردی نداشته و اصلا استفاده هم نشدن.
دو تا فایل و محتویات رو در نظر بگیرید لطفن:


public interface IUser {
String getName();
String getPasswd();
int checkUserValidity(String name, String passwd);
}

public class UserModel implements IUser {
String name;
String passwd;
public UserModel(String name, String passwd) {
this.name = name;
this.passwd = passwd;
}
@Override
public String getName() {
retu name;
}
@Override
public String getPasswd() {
retu passwd;
}
@Override
public int checkUserValidity(String name, String passwd){
if (name==null||passwd==null||!name.equals(getName()) ||!passwd.equals(getPasswd())){
retu -1;
}
retu 0;
}
}

چه اجباری بوده که این اومده متدهای getName و getPasswd رو تو یه فایل دیگه و اینترفیس دیگه تعریف کرده. یا زیاده کاری کرده یا من نمیفهمم. چون به غیر از این کلاس UserModel تو هیچ جای دیگه استفاده نشده. یا مثال زیر رو دقت کنید لطفن:


public interface ILoginPresenter {
void clear();
void doLogin(String name, String passwd);
void setProgressBarVisiblity(int visiblity);
void onDestroy();
}

public class LoginPresenterCompl implements ILoginPresenter {
ILoginView iLoginView;
IUser user;
Handler handler;

public LoginPresenterCompl(ILoginView iLoginView) {
}

@Override
public void clear() {
}

@Override
public void doLogin(String name, String passwd) {
}

@Override
public void setProgressBarVisiblity(int visiblity){
}

@Override
public void onDestroy() {
}

private void initUser(){
}
}


نکته بسیار عجیبش اینجاست که این طرف اومده داخل اکتیویتی یه متدی استفاده کرده که تو کلاس اصلیش کلن هیچ کاری نمیکنه و خالی بدنش. منظورم onDestroy تو کلاس loginPresenter هستش.

@Override
protected void onDestroy() {
super.onDestroy();
loginPresenter.onDestroy();
}

لینک این سورس رو میتونید اینجا ببینید.

- - , .

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 184 تاريخ : جمعه 30 بهمن 1394 ساعت: 17:03