Android(Kotlin)

Sealed class vs Enum

----___<<<<< 2021. 8. 27. 07:13

 가끔 예제들을 보다보면 Sealed  class 와 Enum 이라는 친구들을 보게 됩니다.

 

 이 친구들이 뭐인지 한번 살펴보겠습니다.

 

 sealed 얘를 번역기 돌려보니깐 봉인이라고 나옵니다. 봉인된 클래스? 라는 이름에서 나오는 느낌을 한번 살펴보겠습니다.

 

 간단하게 아래의 예제를 작성해봤습니다.

 

 위와 같이 abstract class 인 sealed class 를 선언해서 객체를 선언해줬습니다.

 

 장점으로는 when을 사용할 때입니다. 

 

 when을 사용할 때 else 를 이용해서 경우를 한번 보겠습니다.

 

 

 else를 이용해서 예외 케이스를 지정해줬습니다.

 

 그러면 sealed class는 어떻게 할까요?

 

 아래와 같이 seaed class에 정의되지 않은 부분에서 컴파일 타임에 에러가 납니다.

 

 때문에 아래와 같이 변경해서 에러를 사전에 잡아줄 수 있습니다.

 

 그렇다면 enum이라는 친구는 뭘까요?

 

 마찬가지로 객체를 나열할 수 있는 class인데, sealed class와 다른 점은 sealed class에서는 객체를 선언해줄 수 있습니다.

 

 

 

 - 참고

 

https://codechacha.com/ko/kotlin-sealed-classes/

 

Kotlin - Sealed class 구현 방법 및 예제

Sealed class는 Super class를 상속받는 Child 클래스의 종류 제한하는 특성을 갖고 있는 클래스입니다. Enum과의 차이점은 Enum은 single instance만 만들 수 있는 반면에 Sealed class는 여러개의 객체를 생성할

codechacha.com

 

'Android(Kotlin)' 카테고리의 다른 글

Android Unit Test  (0) 2021.08.27
anti MVVM Pattern  (0) 2021.08.27
Android MVC MVVM MVP  (0) 2021.08.24
Clean Architecture  (0) 2021.08.24
코루틴(Coroutine)  (0) 2021.08.23