이 글은 엘레강트 오브젝트 새로운 관점에서 바라본 객체지향 도서를 보며 스터디한 글입니다. 책에서 주장하는 내용을 정리하였으며 예제들은 모두 코틀린 코드로 변환하여 작성하였습니다. 목차 인터페이스를 정의하는 방법 스마트 클래스 나중에 배울 데코레이터 1. 인터페이스를 정의하는 방법 인터페이스는 구현자에게 너무 많은 것을 요구하면 안됩니다. // Bad interface.. interface Exchange { fun rate(target: String): Float fun rate(source: String, target: String): Float } 위 코드는 나쁜 설계의 인터페이스입니다. 구현자에게 동일한 기능을 수행하는 rate() 메서드에서 속성값만 다르게 구현하라고 강요하고 있습니다. 이럴 경..