더북(TheBook)

3.5.2 잠재적인 원인

객체 지향 언어에서 절차적인 사고

존슨[60]은 절차적인 배경 지식은 있지만 객체 지향 언어에는 서투른 개발자는 ‘상태’가 아닌 ‘동작’을 위한 클래스를 만드는 경향이 있다고 했다. 이런 설계로 만든 클래스에는 분리된 ‘데이터 클래스’에 위치한 데이터와 함께 동작하는 메서드가 한두 개만 있는 경향이 있다. 절차적인 사고로 만든 이런 클래스는 보통 자신에게 유일무이하면서 의미 있는 책임을 할당받지 못한다.

 

편의상 부적절한 언어 기능 활용

종종 프로그래머는 원래 설계에서 의도하지는 않았지만 단지 ‘편의’나 ‘작업을 끝내려는’ 목적에서 추상화를 도입한다. 열거형 대신 ‘상수 인터페이스’*를 사용하면 프로그래머는 편하다. 상수 인터페이스를 클래스에서 구현하는 방법으로 프로그래머는 타입 이름을 명시적으로 사용하지 않고도 멤버에 접근할 수 있으며, 클래스에서 직접 멤버에 접근할 수도 있다. 이것은 클래스와 연관된 행동 양식 없이 상수 값을 담는 소유자로서만 봉사하는 불필요한 인터페이스나 클래스를 낳는다.

 

 


* 상수 값을 담는 소유자로서 자바에서 인터페이스 기능을 사용한다.

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