일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코틀린
- onMeasure
- lifecycle
- Android
- activity
- 알고리즘
- ViewModel
- 백준
- LiveData
- Behavior
- Algorithm
- recyclerview
- hilt
- onLayout
- AppBarLayout
- CustomView
- room
- notification
- Navigation
- CollapsingToolbarLayout
- kotlin
- DataBinding
- HTTP
- 알림
- BOJ
- 안드로이드
- sqlite
- CoordinatorLayout
- View
- Coroutine
- Today
- Total
목록MVVM (4)
개발일지
Command Command 패턴은 객체의 메소드를 클래스로 만들어 캡슐화 하여 사용하는 패턴입니다. 만약 A Class에서 B Class 기능을 실행하려면 B Class가 의존적으로 필요하지만 Command 패턴을 사용하면 의존성을 제거할 수 있습니다. 불을 키는 Handler를 구현한다고 합시다. 생성자로 불을 키는 클래스를 받고 함수를 실행하면 됩니다. class NoCommandHandler( private val on: LightOnCommand ) { fun invoke() { on.execute() } } 만약 해당 클래스에서 불을 끄는 클래스로 변경한다면 내부의 코드를 변환해야하고 하나의 핸들러로 불을 키고 끄는 기능을 추가한다면 구조를 바꿔야 합니다. -> 기능과 핸들러가 의존적이고 기능..
MVVM Model View ViewModel로 이루어진 디자인 패턴이다. MVP 패턴에서 View와 Presenter가 1대1 관계, View가 Presenter에게 의존적인 단점을 보완한 디자인 패턴이다. View에서 사용자의 입력을 받으면 Command Pattern을 통해 ViewModel에 Action을 전달합니다. ViewModel은 해당 Action에 맞게 Model을 업데이트하고 ViewModel은 Model의 업데이트를 수신하여 값을 수정합니다. View도 마찬가지로 ViewModel의 변화를 감지하여 새로운 값을 바인딩합니다. View MVC 패턴에서 View처럼 사용자에게 UI를 제공한다. View는 ViewModel을 알지만 ViewModel은 View를 모릅니다. 또한 DataBi..
MVP Model View Presenter로 이루어진 디자인 패턴입니다. MVC 패턴에서 View와 Controller의 강한 결합도를 해결하기 위해 나온 디자인 패턴이며, Presenter를 통해 View와 Model의 결합을 줄일 수 있습니다. Model MVC 패턴에서 Model과 같이 데이터를 처리에 관한 로직을 담당합니다. 또한 View, Presenter와 독립적입니다. class Model { fun saveData(data: Int) { // Do Something } } View 사용자와 인터렉션을 담당하며 MVC 패턴에서 View와 비슷합니다. 사용자한테 입력을 받고 프레젠터에게 전달한다. 또한 Presenter가 Model에서 데이터를 불러와 가공하여 View에게 전달합니다. Vie..
MVC MVC는 Model View Controller로 어플리케이션 구성을 크게 3가지로 나누어 관리하는 디자인 패턴입니다. Model Model은 데이터베이스에 접근하여 데이터를 변경하거나 추출하여 가공하는 역할을 합니다. class Model { fun findByQuery(query: String): String { return "Hello World : $query" } fun save(data: String) { // Do Something } } 특징 View와 Controller와 독립되어야 하며 데이터에 관련된 로직만 있어야 한다. View View는 UI를 사용자에게 표시하는 역할을 합니다. class View( private val data: String ) { init { print..