추상화

    객체지향에서의 추상화

    이번 글에서는 객체지향을 지향하는 개발자라면 한번쯤은 들어봤을 단어인 추상화에 대해서 다뤄보고자합니다. 오늘 오전에 팀 단위 스크럼을 진행하며 이러한 대화가 오고갔습니다. A: MVP 아키텍처를 구성하면서 View에서 Presenter로 데이터를 넘기면서 abstract class가 아니라 interface를 쓰던데 혹시 왜 그런거야? 뭔 특별한 이유라도 있어? Android 공식문서에서는 abstract class로 구현하라고 권장하던데... B: 그냥요. 저렇게 해도 되던데요? 그리고 저렇게 해도 상관없을 것 같다고 생각했어요 저는 저런 대화 중간에 끼어들어 아래와 같은 답을 해주었는데, 제가 해당 대화에 내놓았던 답은 아래와 같았습니다. Me: 어차피 abstract class나 interface는..