작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
432
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
강의와 똑같이 설계한 뒤 AppConfig 클래스를 만들고 사진과 같이 파라미터로 MemoryRepository를 넘기면 두개의 MemoryRepository가 생기는거 아닌가요? 저 두개의 Repository 객체는 서로 다른 객체 인데 어떻게 저게 작동이 되나요?? 강의와 똑같이 반신반의 하면서 작동해봤는데 discountPolicy 쪽에서 member객체가 nullPointer 나옵니다....
그렇다고 또 이렇게 하기엔 AppConfig클래스는 인터페이스인 Repository도 의존하게 되고 구현체인 MemoryRepository도 의존하는데... 어떻게 해야하나요?
** 추가
해결했습니다... MemoryRepository의 Map의 키워드가 static으로 하면되네요.... 학습자료 보니깐 static이였네요 ㅠㅠ
답변 1
0
서로 다른 객체인데 마치 하나의 인스턴스처럼 작동하는 거는 섹션4, 5 부분에서 설명이 나오고,
코드 작동시 nullPointer오류가 나오는건 MemoryMemberRepository()를 생성해야 하는데 MemberRepository를 생성해서 그런것 같아요...
그러니깐 new 연산자로 MemoryMemberRepository()를 생성해서 객체의 주소를 참조하는게 memberRepository입니다.... 그리고 각각의 메서드에 파라미터로 받은게 MemoryRepository의 참조변수를 넣은거예요...
제 코드에서는 클래스명의 길이를 줄이고자 MemberRepositroy가 인터페이스이고 MemoryRepository가 구현체입니다.