인프런 커뮤니티 질문&답변
전략 패턴과 팩토리패턴
해결된 질문
작성
·
89
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
소셜 로그인 기능을 구현할 때 팩토리 메서드 패턴으로도 구현이 가능한지 궁금합니다. 쿼리파라미터로 어떤 provider(kakao, naver 등)가 들어오는지에 따라 그에 맞는 서비스(KakaoLoginService, NaverLoginService)를 호출하고 싶은데 전략 패턴이 아닌 팩토리 메서드 패턴으로도 이런 형태의 구현이을 하는지 궁금합니다.
답변 1
0
큰돌
지식공유자
안녕하세요 ㅎㅎ
소셜 로그인 기능을 구현할 때 팩토리 메서드 패턴으로도 구현이 가능한지 궁금합니다.
-> 네 가능합니다. 팩토리패턴의 핵심은 상속 관계에 있는 두 클래스에서 하위 클래스가 인스턴스 생성을 구체화하는 방식임을 지키면서 구현하면 됩니다.
예를 들어 수강생님 말씀처럼 provider=kakao나 provider=naver 등의 파라미터가 들어온다고 가정해볼까요?
다음과 같이 “어떤 소셜 서비스 인스턴스를 생성할지”를 하위클래스에서 결정하는 로직을 별도의 팩토리에 캡슐화하면 됩니다.
public abstract class SocialLoginFactory {
public abstract SocialLoginService createSocialLoginService();
}
public class KakaoLoginFactory extends SocialLoginFactory {
@Override
public SocialLoginService createSocialLoginService() {
return new KakaoLoginService();
}
}
public class NaverLoginFactory extends SocialLoginFactory {
@Override
public SocialLoginService createSocialLoginService() {
return new NaverLoginService();
}
}
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.





