인프런 커뮤니티 질문&답변

원동균님의 프로필 이미지
원동균

작성한 질문수

객체 지향 프로그래밍 입문

추상화 예제에서 추상 클래스를 사용하지 않고 인터페이스를 사용하신 이유가 궁금합니다.

작성

·

161

0

좋은 강의 감사합니다. 추상화 예제 강의를 보다가 추상 클래스를 사용하지 않고 인터페이스를 사용하셔서 질문드립니다.

 

예제에서는 cloudFile, cloudFileSystem을 인터페이스로 만드셨는데, dropBox, nCloud, sCloud가 같은 동작을 한다면 추상 클래스로 만들어서 상속받는것도 괜찮지 않을까란 생각이 들었습니다.

 

추상 클래스와 인터페이스를 어떠한 경우에 사용해야 하는지 강사님만의 기준이 있으신걸까요?

 

 

답변 2

2

최범균님의 프로필 이미지
최범균
지식공유자

안녕하세요 원동균님.

여러 하위 클래스가 동일한 구현으로 로직을 수행하면서, 그 중 일부 로직의 구현이 다를 때 추상 클래스를 고민합니다. 디자인 패턴에서 Template Method 패턴이 이에 해당하는데 이 패턴을 찾아 보시면 도움이 되실 겁니다.

여러 하위 타입이 존재하는 경우 가능하면 최상위 타입은 인터페이스로 만드는 것을 선호합니다. 그래서 추상 클래스를 만들 때 최상위 타입은 인터페이스로 두고 그 인터페이스를 상속한 추상 클래스를 구현하는 편입니다.

0

원동균님의 프로필 이미지
원동균
질문자

답변 감사합니다! 

원동균님의 프로필 이미지
원동균

작성한 질문수

질문하기