DRY 원칙

중복과 변경

타입 코드 사용하기

상속을 이용하여 중복 코드 제거하기

취약한 기반 클래스 문제

불필요한 인터페이스 상속 문제

메서드 오버라이딩의 오작용 문제