추상 팩토리 패턴(Abstract Factory Pattern)
정의 : 추상 팩토리 패턴은 관련된 객체들의 군을 생성하기 위한 인터페이스를 제공하며, 구체적인 클래스들이 이 인터페이스를 구현하여 실제 객체를 생성함
주요 특징
- 목적 : 관련된 객체들의 군을 일관된 방식으로 생성하며 클라이언트 코드와 생성로직을 분리함
- 구성 요소
- Abstract Factory(추상 팩토리) : 관련된 제품 객체들을 생성하는 인터페이스
- Concrete Factory(구체 팩토리) : Abstract Factory 인터페이스를 구현하며 실제 제품 객체를 생성하는 클래스
- Abstract Product(추상 제품) : 생성될 객체의 타입을 정의하는 인터페이스의 추상 클래스
- Concrete Product(구체 제품) : Abstract Product인터페이스를 구현하는 클래스
- Client : Abstract Fatory 인터페이슬르 사용하여 객체를 생성하고 사용하는 클래스
제?품? 이 뭔가요?
제품 (Product Object)
특정 제품이나 아이템을 나타내는 클래스, 일반적으로 제품의 속성과 동작을 정의하며, 이를 통해 다양한 제품을 생성하고
관리할 수 있음
팩토리 메소드 패턴과 추상 팩토리 패턴의 차이점이 뭔데요
팩토리 메소드 패턴
- 단일 제품을 생성함 (단일 객체를 생성한다 느낌인듯)
- 서브클래스에서 구체적인 객체 생성 로직을 구현
- 객체 생성의 책임을 서브클래스에 위임
추상 팩토리 패턴
- 관련된 여러 제품을 일관된 방식으로 생성
- 각 구체 팩토리가 관련된 제품들을 생성
- 객체 생성의 책임을 구체 팩토리 클래스에 위임
팩토리 메소드 패턴만 있는 줄 알았는데 추상 클래스도 있는거 보니
연관된 다른거 더 있는거 아님?!!!!!!!!!!!!!!!!
추상 팩토리와 관련된 패턴
Builder 패턴
- Abstract 패턴을 인터페이스가 정해져 있는 추상적인 부품을 조립해서 복잡한 구조를 가진 인스턴스를 만듬.
- Builder패턴은 단계를 밟아 나가면서 대규모의 인스턴스를 만든다.
Factory method 패턴
- Abstract factory 패턴에서 제품이나 부품을 만드는 부분을 Factory method패턴을 사용하는 경우가 있음
Composite 패턴
- Abstract factory 패턴으로 만들어진 제품은 composite 패턴이 되는 경우가 있음
Singleton패턴
- Abstract factory 패턴의 구체적인 공장은 Singleton 패턴이 되는 경우가 있다.
- 구체적인 공장의 전역 접근 보장
- 추상 팩토리 패턴에서 구체적인 공장 클래스는 관련된 객체들의 생성 책임을 가지며, 이 공장이 여러 곳에서 사용될 경우 객체 생성의 일관성을 유지하기 위해 싱글턴 패턴을 사용합니다. 싱글턴 패턴을 적용하면, 애플리케이션 전체에서 공장의 단일 인스턴스를 공유할 수 있습니다.
- 성능 및 자원 관리
- 공장을 싱글턴으로 만들면, 공장 객체가 여러 번 생성되지 않도록 방지할 수 있습니다. 이는 성능을 향상시키고 자원 사용을 최적화하는 데 도움이 됩니다.
- 상태 관리의 일관성
- 공장 객체가 상태를 가질 수 있는 경우, 싱글턴 패턴을 사용하면 상태가 일관되게 유지될 수 있습니다. 예를 들어, 공장 객체가 생성된 객체들의 목록을 관리하거나 특정 설정 값을 유지해야 할 경우, 싱글턴 패턴을 사용하여 이러한 상태를 중앙에서 관리할 수 있습니다.
- 구체적인 공장의 전역 접근 보장
'java' 카테고리의 다른 글
컴포넌트, 컴포지트, 컨텍스트, 컨테이너 (0) | 2024.07.23 |
---|---|
디자인패턴이 주로 사용되는 섹터 정리(GPT)(기록용) (0) | 2024.07.19 |
추상 팩토리 패턴 (0) | 2024.07.17 |
데코레이터 패턴과 팩토리 패턴 (0) | 2024.07.16 |
디자인패턴에서 자주 쓰이는 용어 정리(GPT)(2) (0) | 2024.07.16 |