더북(TheBook)

1.2.4 좋은 추상화

단순한 코드가 항상 더 낫지만, 확장성 측면에서는 충분하지 않을 수 있다. 코드를 추가해 클래스를 확장하는 것은 어느 시점부터 효과적이지 않으며 오히려 부담이 된다.

한 클래스나 메서드에 30~40개의 서로 다른 비즈니스 규칙을 구현한다고 상상해보자(그림 1-5). 전자 상거래 시스템에서 다양한 할인을 적용하는 DiscountRules 클래스는 새로운 할인 규칙이 추가될 때마다 복잡해지면서 유지보수가 점점 더 어려워진다. 좋은 디자인은 개발자가 기존 클래스의 복잡성을 증가시키지 않고도 시스템을 발전시킬 수 있도록 도와주는 추상화를 제공한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.