'메소드'에 해당되는 글 1건

  1. 2011.07.28 팩토리 패턴 2 (팩토리 메소드 패턴)
Programming/Design Pattern2011. 7. 28. 14:20
 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어던 클래스의 인스턴스를 만드는 일을 서브클레스에서 결정하게 만듭니다. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에 맡기는 것이다.

이전 팩토리 패턴 1은 주체가 팩토리 객체를 이용해 새로운 객체들을 만들어 냈으나, 팩토리 메소드 패턴은 서브클래스에 의해 생성되는 객체의 클래스가 결정되는 것이다.

 유용한 것은 제품을 생산하는 부분과 제품을 사용하는 부분을 분리할 수 있다는 것이다.
 그리고 Creator에서 추상메소드(여기서는 구상클래스를 구현하는 부분이다.)를 선언하고 각각의 객체를 만드는 것이 Creator를 상속받은 ConcreateCreator를 사용하므로 어떤 객체를 만들 것인가를 각 분점에서 판단하므로 팩토리 패턴 1과는 분명한 차이가 있다.

아직 잘 모르시겠다구요?

팩토리 메소드 패턴이 간단한 팩토리와 상당히 비슷한 것은 맞지만 간단한 팩토리는 일회용 처방에 불과한 반면, 팩토리 메소드 페턴을 이용하면 어떤 구현을 사용할지를 서브클래스에서 경정하는 프레임워크를 만들 수 있다는 점이다. 

-> 새로운 종류의 생산물이 필요할 때 ConcreateProduct와 ConcreateCreator를 만들고 나머지는 실행부에서 주문받은데로 이루어지게 만들면 되는 것이다.

마지막으로 팩토리 메소드 패턴을 정리하자면,

추상 메소드를 이용하고, 상속받은 클래스들이 그 추상 메소드를 구현하고 그에 맞게 상품을 만들어서 사용한다. 팩토리 패턴과 다른 것은 분점의 타이밍을 한 타이밍 뒤(상속받은 하위 클래스)로 둠으로 코드의 유지 보수 및 확장이 뛰어난 것이다.

 
Posted by 슈퍼 점프