하나의 인터페이스와 그걸 구현한 클래스 하나가 있습니다...
그럴땐 굳이 인터페이스가 필요가 있을까요? 확장될 여지가 없다면 필요가 없지않을까요?
그런데 책에서도 대개 인터페이스당 하나의 빈이 등록되는 경우가 많다고 예를들어놓는경우를 많이 보았습니다.
인터페이스가 굳이 필요한 이유가 궁금합니다...
소프트웨어 개발에 관한 오랜 격언 중 하나로, 구현이 아니라 인터페이스에 맞춰 코딩하라는 말이 있다. 이는 설계상의 결정을 필요 이상으로 노출하지 말라는 뜻이다.
<중략>
인터페이스 추가에는 비용이 발생한다. 인터페이스를 사용하게 되면 우리는 인터페이스를 배우고 이해하며 문서화하고 디버깅하고 정리하고 조회해서 적당한 이름을 지어야 한다. 인터페이스 수를 최대한 늘린다고 해서 소프트웨어 비용이 최소화되는 것은 아니다. 따라서 인터페이스를 통해 유연성을 얻을 수 있는 경우에만 인터페이스에 비용을 지불해야 한다.
<중략>
인터페이스를 사용하게 된 경제적 이유로는 소프트웨어는 예측하기 어렵다는 점을 들 수 있다.
<중략>
이제 지금까지의 내용을 종합해보자. 소프트웨어는 유연해야 하지만 유연성에는 비용이 들고, 어떤 부분에서 유연성이 필요할지 예측하기란 쉽지 않다. 따라서 실제 필요해지는 경우에만 시스템의 유연성을 부여하자는 결론에 이른다. 유연성을 부여하려면 기존 코드를 수정해야 하기 때문에 비용이 발생한다. 만약 소프트웨어 수정을 혼자 감당할 수 없다면, 비용은 더욱 커진다.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
답변해주셔서 감사합니다
> 2011년 2월 24일 오후 11:24, 야구쟁이 <jichol...@gmail.com>님의 말: