Programming/Kotlin(코틀린)
[Kotlin/Android] LiveData in ViewModel 캡슐화(Encapsulation)
생각하는로뎅
2020. 10. 19. 12:21
반응형
1. 캡슐화(Encapsulation)란?
관련된 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 사용하지 못하도록 하는 객체지향 4대 특성 중 하나이다.
(객체지향 4대 특성 : 캡슐화, 상속, 추상화, 다형성)
2. ViewModel 에 LiveData 를 캡슐화
Java에서 Kotlin으로 넘어가도, 객체 지향 특성을 가지고 있었다. 그 중 캡슐화는 아래와 같이 구현이 되었다.
private var _score = MutableLiveData<Int>()
val score : LiveData<Int>
get() = _score
1) _score는 외부에서 접근하지 못하고, 내부에서만 쓸 수 있도록 private로 선언되어있다.
2) MutableLiveDate는 getter, setter 모두 가능하므로, 내부(VIewModel)에서만 쓰인다.
3) LiveData는 getter 만 가능하므로, 외부에서 데이터를 읽을 수 있다.
반응형