순수한 자바만으로 설계 - 1
회원 엔티티
@Getter @Setter
@AllArgsConstructor
public class Member {
private Long id;
private String name;
private 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<>();
@Override
public void save(Member member) {
store.put(member.getId(), member);
}
@Override
public Member findById(Long memberId) {
return store.get(memberId);
}
}회원 서비스
테스트 코드
할인 정책
할인 엔티티
주문 서비스
테스트 코드
새로운 할인 정책
새로운 할인 정책 적용

인터페이스에만 의존하도록 코드 변경
Last updated