- Factory Method Pattern
- 객체를 생성하기 위한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하도록 한다.
- Factory Mehtod를 이용하면 인스턴스를 만드는 일을 서브 클래스로 미룰 수 있다.
- Abstract Factory Pattern
- 서로 연관된, 또는 의존적인 객체들로 이루어진 제품군을 생성하기 위한 인터페이스를 제공한다. 구상 클래스는 서브클래스에 의해 만들어진다.
- 활용성
- 객체를 생성하거나 구성 및 표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때
- 여러 제품들 중 하나를 선택해서 시스템을 설정해야 하고, 한번 구성한 제품을 다른 것으로 대체할 수 있을 때
- 관련된 제품 객체들이 함께 사용되도록 설계되었고, 이 부분에 대한 제약이 외부에도 지켜지도록 하고 싶을 때
- 제품에 대한 클래스 라이브러리를 제공하고, 그들의 구현이 아닌 인터페이스를 노출시키고 싶을 때
- Factory Pattern 인스턴스 생산 (출처: http://sisterbliss.blog.me/70166527147)
- new 클래스 생성자();
- 이렇게 하면 해당 클래스의 Instance가 Create되어 메모리에 오른다.
- 그리고 프로그래머는 스택이든 힙이든, 메모리에 올라있는 인스턴스를 참조하기 위해서 포인터를 사용한다.
- Apple apple = new Apple();
- Instace를 생산할 때 new를 치지 않고 Factory를 사용해서 만드는 것 à 팩토리 패턴
- Apple applel = AppleFactory.create();
- Instance를 생성하는 로직을 통일시킬 수 있음
- 외부에선 인스턴스가 생산되고 등록되는 일련의 과정을 신경쓰지 않아도 돼.
- 해당 인스턴스가 정확히 어떤 지점에서만 생상되는지 체계를 세울 수 있어
출처 : http://zupper.tistory.com/1282