디자인 패턴 no pattern, mvc, mvp, mvvm

  • no pattern: activity와 xml만을 사용하여 코드 생성
    꼬여있는 스파게티코드로 유지보수 어려움

  • mvc model: dataClass
    view: xml controller: activity
    ->컨트롤러에 입력이 추가될시 뷰와 모델 여러 부분에 영향을 미치게 된다.

  • mvp
    model: dataCalss
    view: activity
    presenter: 기능 interface, view interface
    -> presenter와 view가 1:1 대응되어 테스트에 용이하다.
    view를 통해 입력을 받고 뷰는 preseter와 1:1 대응된다.
    하지만 기능이 많아질 경우 코드가 너무 방대해진다.

  • mvvm
    model: dataClass
    view: activity, xml
    viewmodel: viewModel
    -> viewModel 에서 LiveData를 가지고 있어 LiveData가 변경될 경우
    view에서는 Observer를 통해 변경사항에 따른 뷰의 변경만 처리해주면 된다.