추상 팩토리 메서드 패턴이란?
관련 있는 객체의 생성을 가상화한다.
- 생성 부분의 가상화
- 관련 있는 객체의 가상화
실습
인스턴스의 생성 부분을 추상화, 같은 책임을 갖는 부분을 추상화(역할) 하는 것이 특징이다.
인스턴스 생성 부분 추상화
/**
* Project : EffectiveStudy
*
* @author : jwdeveloper
* @comment :
* Time : 2:31 오후
*/
public interface BikeFactory {
public Body createBody();
public Wheel createWheel();
}
/**
* Project : EffectiveStudy
*
* @author : jwdeveloper
* @comment :
* Time : 2:37 오후
*/
public class GtBikeFactory implements BikeFactory {
@Override
public Body createBody() {
return new GtBody();
}
@Override
public Wheel createWheel() {
return new GtWheel();
}
}
인스턴스 생성 부분을 추상화하여 하위 구현 클래스에서 인스턴스를 생성한다.
역할의 추상화
/**
* Project : EffectiveStudy
*
* @author : jwdeveloper
* @comment :
* Time : 2:28 오후
*/
public interface Body {
}
/**
* Project : EffectiveStudy
*
* @author : jwdeveloper
* @comment :
* Time : 2:37 오후
*/
public class GtBody implements Body {
}
실행
/**
* Project : EffectiveStudy
*
* @author : jwdeveloper
* @comment :
* Time : 2:33 오후
*/
public class Main {
public static void main(String[] args) {
BikeFactory factory = new GtBikeFactory();
System.out.println(factory.createBody().getClass());
System.out.println(factory.createWheel().getClass());
}
}
Code Link
References
'CS > DesignPattern' 카테고리의 다른 글
(DesignPattern) 컴포짓 패턴 (0) | 2020.05.29 |
---|---|
(DesignPattern) 브릿지 패턴 (0) | 2020.05.17 |
(DesignPattern) 빌더 패턴 (0) | 2020.05.10 |
(DesignPattern) 프로토타입 패턴 (0) | 2020.05.04 |
(DesignPattern) 싱글턴 패턴 (0) | 2020.05.02 |