MVVM的缺点
-
数据绑定使得 Bug 不易调试,也会使得一个位置的 Bug 被快速传递到别的位置。
-
虽然使用Model方便了保证数据一致性,但是大的模块中长期不释放内存就会造成花费更多的内存。
-
数据双向绑定不利于View部分的代码复用。
再更深层次学习,可以使用LiveData+ViewModel
以下是采用MVVM框架的代码:
Account.java
public class Account {
String name;
int level;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
}
MCallBack.java
public interface MCallback {
public void onSuccess(Account account);
public void onFailed();
}
MVVMActivity.java
public class MVVMActivity extends AppCompatActivity {
private ActivityMvvmBinding binding;
private MVVMViewModel mvvmViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this,R.layout.activity_mvvm);
mvvmViewModel = new MVVMViewModel(getApplication(),binding);
binding.setViewModel(mvvmViewModel); //初始化viewModel
}
}
MVVMModel.java
public class MVVMModel {
//模拟查询账号数据
public void getAccountData(String accountName, MCallback callback){
Random random = new Random();
boolea