팩토리 메소드 패턴 - 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만든다. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것이다.

------------------------------------------------------------------------------------

바뀌는 부분을 캡슐화 하라!

구상 클래스의 인스턴스를 만드는 코드가 있다면 그 부분은 쉽게 바뀔 수 있다. 
인스턴스를 만드는 행동을 캡슐화 할 수 있게 해 주는  것이 "팩토리"이다.

사용시 장점
1. 객체 생성 코드를 전부 한 객체 또는 메소드에 집어넣으면 코드에서 중복되는 내용을 제거할 수 있고, 나중에 관리할 때도 한군데에만 신경을 쓰면 된다.
2. 클라이언트 입장에서는 객체 인스턴스를 만들 때 필요한 구상 클래스가 아닌 인터페이스만 필요로 하게 된다. 
3. 구현이 아닌 인터페이스를 바탕으로 프로그래밍을 할 수 있게 되고, 그 결과 유연성과 확장성이 뛰어난 코드를 만들 수 있게 된다.

생성 코드를 한 곳에 모아놓고 체계적으로 관리할 수 있는 디자인을 만들면 객체 인스턴스를 만드는 코드를 보호하고 관리하기가 편해진다. 

------------------------------------------------------------------------------------

Q: 간단한  팩토리와 팩토리 메소드 패턴의 차이점을 아직 잘 모르겠어요. 팩토리 메소드 패턴에서는 피자를 리턴하는 클래스가 서브클래스라는 점을 제외하면 거의 똑같잖아요. 

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

------------------------------------------------------------------------------------

WRITTEN BY
정현석
이것저것 끄적끄적....

,