카테고리 없음

7강. 회원 도메인 구현

sdafdq 2023. 7. 13. 22:17
public class Member {
    private Long id;
    private String name;
    private Grade grade;

    public Member(Long id, String name, Grade grade) {
        this.id = id;
        this.name = name;
        this.grade = grade;
    }
}

 

public enum Grade {
    BASIC,
    VIP
}

 

 

public interface MemberRepository {
    void save(Member member);
    Member findById(Long memberId);
}
public class MemoryMemberRepository implements MemberRepository{
    private static Map<Long, Member> store = new HashMap<>();   //Map, id랑 Member 객체 간이적으로 메모리에 저장
    @Override
    public void save(Member member) {
        store.put(member.getId(), member);
    }

    @Override
    public Member findById(Long memberId) {
        return store.get(memberId);
    }
}

 

 

 

public interface MemberService {
    void join(Member member);

    Member findMember(Long memberId);

}
package com.example.core.member;

public class MemberServiceImpl implements MemberService{

    private final MemberRepository memberRepository = new MemoryMemberRepository();


    @Override
    public void join(Member member) {
        memberRepository.save(member);
    }

    @Override
    public Member findMember(Long memberId) {
        return memberRepository.findById(memberId);
    }
}