[아이템 23] 태그 달린 클래스보다는 클래스 계층구조를 활용하라
IT 개발/개념 정리
2022. 5. 27. 21:36
태그 달린 클래스의 단점
- 열거 타입 선언, 태그 필드, switch 문 등 쓸데없는 코드가 많다.
- 단일 책임 원칙 (Single responsibility principle)의 원칙에 어긋나 가독성도 나쁘고 메모리도 많이 사용한다.
- switch문에 새로운 의미를 처리하는데 빼고 작성하면 런타임 시에나 문제를 발견한다.
- 인스턴스 타입만으로 클래스의 목적을 알 수 없다.
태그 달린 클래스는 장황하고 , 오류를 내기 쉽고, 비효율적이다.
클래스 계층구조를 활용하는 서브타이핑은 타입 하나로 다양한 의미의 객체를 표현한다.
- 계층구조의 루트(root)가 될 추상 클래스를 정의
- 태그 값에 따라 동작이 달라지는 메서드를 루트 클래스의 추상 메서드로 선언
- 태그 값에 상관없이 동작이 일정한 메서드를 루트 클래스에 일반 메서드로 추가
- 모든 하위 클래스에서 공통으로 사용하는 데이터 필드도 전부 루트 클래스로 올림
- 루트 클래스를 확장한 구체 클래스를 의미별로 정의
각 의미를 독립된 클래스에 담아 관련 없던 데이터 필드를 모두 제거
반응형
'IT 개발 > 개념 정리' 카테고리의 다른 글
[아이템 26] raw type은 사용하지 말라 (0) | 2022.05.27 |
---|---|
[아이템 25] 톱레벨 클래스는 한 파일에 하나만 담으라 (0) | 2022.05.27 |
[아이템 22] 인터페이스는 타입을 정의하는 용도로만 사용하라 (0) | 2022.05.26 |
[아이템 21] 인터페이스는 구현하는 쪽을 생각해 설계하라 (0) | 2022.05.26 |
[아이템 20] 추상 클래스보다는 인터페이스를 우선하라 (0) | 2022.05.26 |