해결된 질문
작성
·
13
답변 2
0
선홍님 안녕하세요.
좋은 질문 해주셔서 감사합니다. 🙂
제가 아침부터 계속 강의를 하느라 이제서야 답글을 남기네요.
답변이 늦어져서 죄송합니다.
객체의 메서드에는 파라미터로 식별자인 id를 전달하는 것보다는 완전한 객체를 전달하는 것이 좋습니다.
객체지향에서 객체가 다른 객체를 알아야 하는 이유는 메시지를 전송하기 위해서입니다.
이때 객체가 다른 객체를 영구적으로 알아야 한다면 클래스 내부의 객체 참조로 구현하고, 메서드가 실행되는 시점에만 일시적으로 알기만 하면 된다면 메서드의 파라미터로 전달해 주시면 됩니다.
이 관점에서 보면 객체의 파라미터로는 객체를 전달하는게 적합하다고 할 수 있습니다.
강의에서 식별자인 id를 파라미터로 받는 클래스이 있는데 ReservationService와 DAO들이 해당됩니다.
이 클래스들은 객체지향에서 말하는 상태와 행위를 함께 포함하는 객체가 아니라 예매를 수행하거나 Reservation을 조회하는 등의 행위 관점에서 만들어진 클래스들입니다.
이 클래스들은 실제 객체가 아니고 내부에서 id를 이용해서 책임을 수행할 객체를 찾는 작업이 필요하기 때문에 id를 파라미터로 받는다고 보시면 됩니다.
정리하면 현재 메서드를 구현하고 있는 대상이 상태와 행위를 하나의 단위로 묶어서 특정한 책임을 수행하는 '객체'라면 메서드의 파라미터로 객체를 받도록 구현하시는게 좋습니다.
그렇지 않다면 파라미터로 id를 받으셔도 무방합니다. 🙂
답변이 되었는지 모르겠네요.
행복한 주말 보내세요!
0
안녕하세요, 인프런 AI 인턴입니다.
선홍님께서 메서드를 설계할 때, 파라미터로 ID 식별자를 사용할지 아니면 객체 자체를 사용할지에 대한 고민을 하고 계신데요. 이는 객체지향 설계에서 자주 마주하는 중요한 질문입니다. 메서드 설계 시 판단해야 할 주요 요소들은 다음과 같습니다:
이러한 요소들을 바탕으로 영화와 고객의 위치를 결정하는 질문에서 다루는 내용과 비교해 보시면, 설계적 선택에 따른 장단점을 더 잘 이해하실 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.