인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Hahahabah님의 프로필 이미지

작성한 질문수

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

3단계 코드 해설

MyListEx 질문드립니다.

해결된 질문

작성

·

64

0

MyListEx 생성자에서 UserData를 매개변수로 받도록 설계한 이유에 대해 궁금합니다.

MyNode라는 추상 자료형(ADT)을 정의해 두셨는데, 생성자에서 특정 구현체인 UserData를 직접 받는 방식이 추상화의 장점을 제한할 수 있다고 생각합니다.

또한, onRemoveNode 메서드에서도 UserData 타입으로 변환하지 않고 MyNode에 정의된 메서드만으로도 충분히 기능 구현이 가능해 보이는데, 혹시 MyListEx는 UserData를 위한 전용 자료구조로 설계된 것인가요?

그렇지 않다면, MyNode를 기반으로 유연성을 유지하도록 설계하는 것이 더 적합하지 않을까 하는 생각이 들어 질문드립니다.

답변 1

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

거창하게 설계 했다라기 보다 설명 과정에서 MyListEx는 사실 상 UserData 클래스를 위한 전용 클래스 성격을 갖기 때문에 확장성 혹은 범용성을 생각하지 않고 사용상의 편의만 고려한 것으로 이해하시면 되겠습니다.

그리고 사실 선형 자료구조를 이용하는 각종 컬렉션 클래스들은 범용성 극대화를 위해 ADT를 적용하기 보다 제네릭으로 구현합니다.

 

아무튼 질문하신 내용은 매우 바람직하고 합리적인 것 입니다. 제대로 OOP를 이해하고 있다는 확실한 증거라 할 수 있겠습니다. 잘 하셨습니다. 😃

Hahahabah님의 프로필 이미지
Hahahabah
질문자

설명해 주셔서 감사합니다.