티스토리 뷰

JAVA/Spring Framework

회원 도메인 개발

tsgoing 2021. 2. 21. 21:27
public enum Grade {
//BASIC,
//VIP
}
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;
    }
	
    // Getter Setter 만들어줌.
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Grade getGrade() {
        return grade;
    }

    public void setGrade(Grade grade) {
        this.grade = grade;
    }
}


인터페이스를 만들어줌.

public interface MemberRepository {
	
    void save(Member member);
    
    Member findById(Long memberId);
}

회원저장소

DB가 확정이 되지 않았기 때문에 메모리에 저장하는 MemoryMemberRepository를 만들어줌.

- 실무에서는 Concurrent HashMap을 사용해야 함 (여기서는 HashMap을 사용)

public class MemoryMemberRepository implements MemberRepository {

	private static Map<Long, Member> store = new HashMap<>();
 	
    @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);
}

회원서비스 구현체

관례: 구현체가 하나 있을 경우 인터페이스 이름 뒤에 impl이라고 많이 붙임

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);
    }
    
    
    
}

 

[출처] 스프링 핵심 원리 - 김영한님 의 강의를 듣고 정리한 내용입니다.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함