참조: Effective Java 2nd Edition. Prefer class hierarchies to tageed classes
위와 같은 클래스의 단점:
– enum, switch 문, 태그 필드로 인해 지져분하다.
– 여러 구현체를 하나의 클래스로 합쳐놓았기 때문에 가독성이 떨어진다.
– 불필요한 필드까지 가지고 인스턴스를 만들어야 하기 떄문에 메모리 풋프린트가 증가한다.
– 생성자에서 불필요한 필드까지 초기화하지 않는 이상 필드를 final로 선언할 수