코틀린

    sealed class 를 이용한 상태관리

    enum 대신 sealed class를 이용해서 상태관리를 하는 이유는 enum의 장점과 class의 장점을 모두 활용하기 위해서입니다. 1. enum을 쓰는 이유 int SOME_STATE_A = 0 int SOME_STATE_B = 1 만약 enum을 안쓰고 이렇게 상수로 상태를 정의한다고 한다면 컴파일러는 저 두개의 상수가 똑같이 SOME_STATE를 나타낸다는 것을 모를 것입니다. 따라서 when을 이용해 상태관리를 할 경우에 아래처럼 쓰게됩니다. fun foo() : Any { return when(state) SOME_STATE_A -> //do something.. SOME_STATE_B -> //do something.. else -> throw exception } 반면에 enum을 이용..