
domain의 member id, name은 private으로 설정하고 외부에서 접근할 때 getter/setter로 호출

MemberRepository Interface, 아직 리포지토리를 어떤 것을 채택할 지 안 골랐기 때문에 인터페이스로 작성.
Member save(Member member) : 회원을 입력받으면 저장
Optional<Member> findById(Long id) : id를 입력받으면 일치하는 회원 출력
Optional<Member> findByName(String name) : name을 입력받으면 일치하는 회원 출력
List<Member> findAll() : 모든 회원 출력
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long, Member> store = new HashMap<>();
private static long sequence = 0L;
@Override
public Member save(Member member) {
member.setId(++sequence);
store.put(member.getId(), member);
return member;
}
@Override
public Optional<Member> findById(Long id) {
return Optional.ofNullable(store.get(id));
}
@Override
public Optional<Member> findByName(String name) {
return store.values().stream()
.filter(member -> member.getName().equals(name))
.findAny();
}
@Override
public List<Member> findAll() {
return new ArrayList<>(store.values());
}
}
memory level에서 interface를 구현
'BE Study > Spring' 카테고리의 다른 글
| 회원 서비스 개발 (0) | 2024.06.20 |
|---|---|
| 회원 리포지토리 테스트 케이스 작성 (0) | 2024.06.20 |
| 회원 관리 비지니스 요구사항 정리 (0) | 2024.06.20 |
| Static, MVC와 템플릿 엔진, API (3) (0) | 2024.06.20 |
| Static, MVC와 템플릿 엔진, API (2) (0) | 2024.06.20 |