Java Enum vs Class ?

강준호·2024년 1월 1일
0

헷갈리는

목록 보기
12/14

Enum vs Class ?

언제 사용해야할까?

Enum

  • 고정 상수 집합: 요일, 월, 방향(북, 남, 동, 서)과 같은 고정된 상수 집합이 있는 경우 열거형을 사용합니다.
    열거형은 유형 안전성을 보장하고 잘못된 값이 할당되는 것을 방지합니다.

  • 싱글톤 패턴: 열거형은 각 상수의 단일 인스턴스를 보장하므로 싱글톤 디자인 패턴을 구현하는 데 사용할 수 있습니다.

  • Switch 문: 열거형은 고정된 가능한 값 집합을 기반으로 다양한 작업을 수행하려는 스위치 문에 이상적입니다.

  • 상수 그룹화: 논리적으로 서로 관련된 상수가 있고 이를 함께 그룹화하려는 경우 열거형이 좋은 선택입니다.

Class

  • 변경 가능한 속성: 시간이 지남에 따라 변경될 수 있는 속성을 가진 객체를 나타내야 할 때 클래스를 사용하세요. 열거형은 Java에서 암시적으로 최종이므로 변경 가능한 데이터에 적합하지 않습니다.

  • 복잡한 동작: 모델링하는 엔터티에 복잡한 동작이 있거나 중요한 논리가 포함된 여러 메서드가 있는 경우 클래스가 더 적합합니다.

  • 가변 수의 인스턴스: 임의 수의 엔터티 인스턴스를 생성해야 하는 경우 클래스가 올바른 선택입니다. 열거형은 미리 정의된 상수 목록으로 제한됩니다.

  • 상속 및 인터페이스: 상속을 활용해야 하는 경우(열거형이 수행할 수 있는 인터페이스 구현 이상) 클래스를 사용해야 합니다. 열거형은 다른 클래스를 확장할 수 없습니다.

  • 단순한 상수 그 이상: 모델링하는 대상이 단지 상수 집합을 나타내는 것 이상이며 여러 필드와 메서드가 포함된 보다 정교한 구조를 포함하는 경우 클래스가 더 적합할 것입니다.

적절한 사용 예시

Enum

  • 선택적인 동작이 있는 고정된 상수 세트일때!

  • 주문 상태(NEW, PROCESSING, SHIPPED, DELIVERED)를 나타냅니다.

클래스

  • 변경 가능한 속성과 정교한 개체를 위할때!

  • 이름, 주소, 구매 내역 등 변경될 수 있는 속성을 사용하여 고객을 모델링합니다.

0개의 댓글