본문 바로가기

CS/DesignPattern

(DesignPattern) 추상팩토리 메서드 패턴

추상 팩토리 메서드 패턴이란?

관련 있는 객체의 생성을 가상화한다.

  • 생성 부분의 가상화 
  • 관련 있는 객체의 가상화

실습

 

인스턴스의 생성 부분을 추상화, 같은 책임을 갖는 부분을 추상화(역할) 하는 것이 특징이다.


인스턴스 생성 부분 추상화

/**
 * 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

https://github.com/mike6321/PURE_JAVA/tree/master/EffectiveStudy/src/main/java/me/designpattern/h_abstractfactory

 

mike6321/PURE_JAVA

Contribute to mike6321/PURE_JAVA development by creating an account on GitHub.

github.com

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