다운 받은 후 원하는 곳에 디랙토리 압축을 푼다
InteliJ로 build.gradle
을 [프로젝트 열기] 한다.
기능을 어떻게 구현할 건지?!!
관원 서비스
저장, 조회 → 이를 엑셀로 저장, DB로 자장 변동가능
생활관 서비스
생활관 배정 → 시기 상황에 따라서 변동 가능
이러한 변동사항을 어떻게 유지 보수 할 것인가?
public interface MemberService {
void register(Member member);
Member findMember(Member member);
}
public class MemberServiceImpl implements MemberService {
/* FileMemberStorage가 아닌 interface를 가져오는게 국룰 */
// private final MemberStorage memberStorage = new DbMemberStorage();
// private final MemberStorage memberStorage = new FileMemberStorage();
/*
코드 수정 사항이 불가피한 단점이 존재(OCP 준수 X) => AppConfig로 해결(의존성 주입)
*/
private MemberStorage memberStorage;
public MemberServiceImpl(FileMemberStorage fileMemberStorage) {
this.memberStorage = fileMemberStorage;
}
@Override
public void register(Member member) {
memberStorage.store(member);
}
@Override
public Member findMember(Member member) {
return memberStorage.findById(member.getId());
}
}