계층구조

    [Effective Java] 태그 달린 클래스보다는 클래스 계층구조를 활용하라

    태그 달린 클래스는 단점 한가득이다. 열거 타입 선언, 태그 필드, switch문 등 쓸데없는 코드가 많다. 여러 구현이 한 클래스에 혼합되어 있어서 가독성이 좋지 않다. 다른 의미를 위한 코드도 함께 하니 메모리도 많이 사용한다. 필드들을 final로 선언하려면 해당 의미에 쓰이지 않는 필드들까지 생성자에서 초기화해야 한다. 인스턴스 타입만으로는 현재 나타내는 의미를 알 길이 없다. => 태그 달린 클래스는 장황하고, 오류를 내기 쉽고, 비효율적이다. class Figure { enum Shape { RECTANGLE, CIRCLE }; final Shape shape; // 다음 필드들은 모양이 사각형일 때만 쓰인다 double length; double width; // 이 필드는 모양이 원(Cir..