Kotlin Backing Properties에 대하여

JIHOON·2022년 5월 17일
0

AAC ViewModel을 사용하다보면 내부의 프로퍼티를 외부에서 변경하지 못하도록 Backing Properties라는 방법을 사용한다. 왜 이런 방법을 사용하는 것일까?

예를들어 아래와 같은 Boolean 타입의 Property를 예를 들어보자

private val _check = MutableLiveData<Boolean>()
val check : LiveData<Boolean> = _check

private val _check = MutableLiveData<Boolean>()
val check : LiveData<Boolean>
	get() = _check

위 두가지 방식의 차이는 무엇인가?

첫번째 방법은 초기화 당시 check값에 _check값을 대입한다는 뜻이다.

두번째 방법은 check값을 가져올때 _check값을 return한다는 뜻이다.

차이

만약 _check의 값이 가변이고 재생성되었다고 가정하면 두번째 방법에서는 check값을 가져올때 _check를 return하기 때문에 재생성된 프로퍼티를 가져올 수 있다. 하지만 첫번째방법에서는 초기화 당시 _check의 값을 가지고 있어 재생성된 프로퍼티를 얻을 수 없다.

profile
https://github.com/Userz1-redd

0개의 댓글