我在最近发布的“Android最佳实践”书中读到了一个用于android编程的优秀设计模式是MVVM。在我最近的项目中自己尝试过之后,它似乎将代码分成更易于管理的部分。Android MVVM设计模式
视图只处理创建视图项和ViewModel的接口。 ViewModel在视图上实现接口和手工操作,并与模型交互。下面的示例代码:
型号
public class MyModel{
public String myString;
public MyModel(String myString){
this.myString = myString;
}
}
查看
public class MyActivity{
public ViewManager delegate;
public interface ViewManager{
void registerTextView(TextView tvText);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
delegate = new ViewController(this);
TextView tvText = (TextView) view.findViewById(R.id.tvText);
delegate.registerTextView(tvText);
}
}
视图模型
public class ViewController implements MyActivity.ViewManager{
Context activity;
TextView tvText;
MyModel myModel;
public ViewController(Context app_context){
activity = app_context;
myModel = new MyModel("Hello World");
}
@Override
public registerTextView(TextView tvText){
this.tvText = tvText;
tvText.setText(myModel.myString);
}
}
不过,我还没有看到这种方法在其他地方上网,但无法找到太多的信息支持它是一个很好的android设计模式。我也有几个问题,如:
如果你有一个单独的ViewModel每个片段或只是活动?
此方法在配置更改和活动休闲方面表现良好,另一个类的额外开销是多少? 您可以将上下文转换为您的活动以启用fragmentManager?
作为代码的这种规模如何变得更加复杂?
有没有人有使用android的这种设计模式的经验或任何人都可以指示我在一些很好的学习材料的方向之前,我开始转换我的所有项目MVVM?
你可以做任何你与你的代码一样,没有标准。我个人不会使用这种模式;除非我因为某种原因需要它,我觉得它只是增加了不必要的抽象。 – Karakuri