23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라 태그 달린 클래스의 단점 열거 타입 선언, 태그 필드, switch 문 등의 관련 코드가 필요 필드들을 final로 선언하는 경우, 쓰이지 않는 필드까지 생성자에서 초기화 인스턴스의 타입만으로는 현재 의미 파악 불가 의미 없는 코드로 가독성이 떨어지면서 필요 없는 코드 작성 과정에서 오류 발생 가능성과 비효율적인 작업이 급격하게 증가하게 된다. 이러한 문제를 해결하기 위해서는 서브타이핑(Subtyping)을 사용하는 것이 좋다. 태그 달린 클래스의 예시 public class Figure { enum Shape { RECTANGLE, CIRCLE }; final Shape shape; // 관련 필드가 한 곳에다 모여 있다. double lengt..