반응형

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 만 가능하므로, 외부에서 데이터를 읽을 수 있다.

 

 

반응형