评论

收藏

[办公软件] 阿里大牛:选择大于努力,所以MVC,砥砺前行

电脑办公 电脑办公 发布于:2021-12-25 14:46 | 阅读数:574 | 评论:0

DSC0000.jpg

因为activity扮演了controller和view的工作,所以controller和view不太好彻底解耦,但是在一定程度上我们还是可以解耦的。
Talk is cheap. Show me the code. 扯了这么多,我们来看点代码。
4、MVC sample
通过代码来看下,mvc在Android中的实现
DSC0001.jpg

结构很简单,这里介绍下其中的关键代码
public interface BaseModel {
void onDestroy();
}
BaseModel顾名思义就是所有业务逻辑model的父类,这里的onDestroy()方法用于跟activity或者fragment生命周期同步,在destroy做一些销毁操作
public interface Callback1<T> {
void onCallBack(T t);
}
public interface Callback2<T,P> {
void onCallBack(T t,P p);
}
Callback是根据View或者Controller调用Model时回调的参数个数选择使用
public?void??getUserInfo(String?uid,Callback1<UserInfo>?callback)
{
UserInfo?userInfo=?new?HttpUtil<UserInfo>().get(uid);
callback.onCallBack(userInfo);
}
@Override
public?void?onDestroy()?{
}
public?class?UserInfo
{
private?int?age;
private?String?name;
public?int?getAge()?{
return?age;
}
public?void?setAge(int?age)?{
this.age?=?age;
}
public?String?getName()?{
return?name;
}
public?void?setName(String?name)?{
this.name?=?name;
}
}
}
SampleModel是我们业务逻辑的具体实现

public class SampleActivity extends AppCompatActivity {
private SampleModel sampleModel;
Button button;
EditText textView;
TextView tvAge,tvName;@Overridebr/>@Overridebr/>@Overridebr/>@Override
关注下面的标签,发现更多相似文章