해결된 질문
작성
·
64
0
MyListEx
생성자에서 UserData
를 매개변수로 받도록 설계한 이유에 대해 궁금합니다.
MyNode
라는 추상 자료형(ADT)을 정의해 두셨는데, 생성자에서 특정 구현체인 UserData
를 직접 받는 방식이 추상화의 장점을 제한할 수 있다고 생각합니다.
또한, onRemoveNode
메서드에서도 UserData 타입으로 변환하지 않고 MyNode
에 정의된 메서드만으로도 충분히 기능 구현이 가능해 보이는데, 혹시 MyListEx
는 UserData를 위한 전용 자료구조로 설계된 것인가요?
그렇지 않다면, MyNode
를 기반으로 유연성을 유지하도록 설계하는 것이 더 적합하지 않을까 하는 생각이 들어 질문드립니다.
답변 1
1
거창하게 설계 했다라기 보다 설명 과정에서 MyListEx는 사실 상 UserData 클래스를 위한 전용 클래스 성격을 갖기 때문에 확장성 혹은 범용성을 생각하지 않고 사용상의 편의만 고려한 것으로 이해하시면 되겠습니다.
그리고 사실 선형 자료구조를 이용하는 각종 컬렉션 클래스들은 범용성 극대화를 위해 ADT를 적용하기 보다 제네릭으로 구현합니다.
아무튼 질문하신 내용은 매우 바람직하고 합리적인 것 입니다. 제대로 OOP를 이해하고 있다는 확실한 증거라 할 수 있겠습니다. 잘 하셨습니다. 😃
설명해 주셔서 감사합니다.