학생과 학부생 이 있고 학부생의 attribute로 1,2,3,4학년의 학년 이 있다면 거기서 if else문을 통해 구분하기 쉽다.
하지만 이것은 'smell'로 성능을 저하시킨다. 따라서 이런 typecode의 값이 mutable인지 아닌지에 따라서 클래스를 따로 빼서 만들어줘야한다.
즉 이 경우에는 학부생 하위에 학년 클래스를 만들고, 학년 클래스를 상속하는 1학년,2학년 ... 이런 방식으로 진행해야한다.
출처 : 부산대학교 채흥석 교수님 자료