我在最近發佈的「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