나는 안드로이드 프로그래밍을 위해 사용할 좋은 디자인 패턴이 MVVM이라는 최근 발표 된 '안드로이드 모범 사례'책을 읽었습니다. 최신 프로젝트에서 직접 시도해 보았을 때 코드를보다 관리하기 쉬운 섹션으로 분리하는 데 도움이되는 것 같습니다.안드로이드 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);
}
}
의 ViewModel 그러나
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);
}
}
, 나는 온라인으로 다른 곳에서는이 방법을 보았고 많은 정보를 찾을 수없는 생각하지 않은 그것은 안드로이드에 대한 좋은 디자인 패턴을 지원합니다. 또한 다음과 같은 몇 가지 질문이 있습니다.
모든 조각 또는 활동에 대해 별도의 ViewModel을 사용해야합니까?
이 접근법은 다른 클래스의 추가 오버 헤드로 구성 변경 및 활동 레크리에이션에서 잘 수행됩니까? fragmentManager를 사용하려면 컨텍스트를 액티비티에 캐스트 할 수 있습니까?
코드로 표시되는이 축척은 어떻게 더 복잡해 집니까?
누군가가 안드로이드와 함께이 디자인 패턴을 사용하여 경험을 가지고 있습니까 아니면 누군가가 MVVM에 내 모든 프로젝트를 변환하기 시작하기 전에 좋은 학습 자료의 방향으로 나를 가리킬 수 ???
당신이 당신의 코드를 원하는대로, 표준이 없다. 나는 개인적으로 이런 종류의 패턴을 사용하지 않는다. 어떤 이유로 든 그것을 필요로하지 않는다면, 불필요한 추상화를 추가한다고 생각합니다. – Karakuri