1. 정의

추상 팩토리 패턴은 팩토리 메서드 패턴과 유사하나 팩토리 메서드 패턴은 클래스들이 “Create(객체를 생성하는)” 메서드를 구현하고 하나의 객체를 반환하는 게 전부이지만 추상 팩토리 패턴은 클라이언트에 연결된 객체들의 패밀리를 반환하는 것이다.

관련성 있는 여러 종류의 객체를 특정 그룹으로 묶어 한번에 일관된 방식으로 생성하고 교체할 수 있도록 만든 디자인 패턴이다.

예를 들어, 특정 라이브러리를 배포하는 데 OS별로 지원하는 기능이 상이하다면 추상 팩토리 패턴을 사용해 OS별 기능을 통합적으로 변경할 수 있다.

  1. 장점

  2. 관리 용이성 - 클래스 이름 대신 팩토리 메서드를 사용해 객체를 생성하기 때문에, 추후 실제 생성되는 객체가 바뀌거나 추가되어도 문제가 없다.

  3. 보안성 - 클래스 대부분의 내용은 숨기고 싶을 때, 인터페이스나 abstract를 통해서만 객체에 접근하게 할 수 있다.

  4. 리소스 재활용성 - 팩토리 메소드가 반드시 객체를 새로 생성할 필요는 없고, 상황에 따라 새로 생성될 수 도, 기존의 것을 리턴할 수 도 있다.

  5. 위의 세가지 모두 팩토리 메서드 패턴과 같으나, 추상 팩토리의 경우 여기 더해 팩토리 상속 구조를 둠으로서 세밀한 팩토리 관리가 가능하다.

코드링크

코드링크2

코드링크3

코드링크4