Abstract Factory 패턴

2022. 9. 12. 01:11·디자인 패턴

팩토리 패턴과 추상 팩토리 패턴


추상 팩토리 패턴(Abstract Factory Pattern)

❤상세화된 서브클래스를 정의하지 않고 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공하는 패턴

❤팩토리 메서드 패턴을 좀 더 캡슐화한 방식


추상 팩토리 패턴의 사용 이유

❤객체가 생성되거나 구성/표현되는 방식과 무관하게 시스템을 독립적으로 만들고자 할 때 사용한다.

❤여러 제품군 중 하나를 선택해서 시스템을 설정해야하고, 한번 구성한 제품을 다른 것으로 대체하는것이 가능할 때 사용한다.

❤관련된 제품 객체들이 함께 사용되도록 설계되었고, 이 부분에 대한 제약이 외부에서도 지켜지게 하고 싶을때 사용한다.

❤제품에 대한 클래스 라이브러리를 제공하고, 이것의 구현이 아닌 인터페이스만을 노출시키고 싶을 때 사용한다.


장점

  1. 구체적인 클래스를 사용자로부터 분리한다. (사용자는 인터페이스에 대해서만 알고있으면 됨)
  2. 제품군을 쉽게 대체할 수 있다.
  3. 객체 생성 과정에서 일관성이 높아진다.

단점

  1. 새로운 종류의 제품을 제공하기 어렵다.

구현방식

❤ Abstract Factory : 팩토리 인터페이스로, 만들고자 하는 객체를 생성하는 연산을 정의한다.

❤ Concrete Factory : Abstract Factory 인터페이스를 구현하는 클래스로 구체적인 요소가 들어있다.

❤ Abstract Product : Abstract Product에서 만들려고 했던 그 객체에 대한 인터페이스를 정의한다.

❤ Concrete Product : 팩토리에서 생성할 실제 객체를 정의하고 Abstract Product의 인터페이스를 정의한다.

❤ Client : 생성된 객체를 인터페이스만을 이용해 사용한다.(Abstract Factory와 Abstract Product만을 사용함)


참고 사이트

[생성 패턴] 추상 팩토리 패턴(Abstract Factory Pattern) 이해 및 예제

'디자인 패턴' 카테고리의 다른 글

Factory 패턴  (0) 2022.09.12
인터페이스  (0) 2022.09.12
Adapter 패턴  (0) 2022.09.12
Proxy 패턴  (1) 2022.09.12
UML  (0) 2022.09.12
'디자인 패턴' 카테고리의 다른 글
  • Factory 패턴
  • 인터페이스
  • Adapter 패턴
  • Proxy 패턴
가든_
가든_
  • 가든_
    Code Garden
    가든_
  • 전체
    오늘
    어제
    • 글 목록 (60)
      • 프로그래밍 언어 (11)
        • JAVA (0)
        • C++ (2)
        • C# (9)
      • 개발툴 (24)
        • Visual Studio (0)
        • Visual Studio Code (1)
        • Eclipse (1)
        • Unity (19)
        • Unreal (0)
        • Spring (1)
        • SpringBoot (0)
        • Vue (2)
      • 디자인 패턴 (6)
      • 백엔드 (4)
        • MySQL (1)
        • Servlet (3)
      • 프론트엔드 (4)
        • HTML (3)
        • CSS (0)
        • Javascript (1)
      • 알고리즘 (10)
        • 공식 (3)
        • 백준 (6)
        • SW Expert Academy (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Adapter 패턴
    FixedUpdate
    클래스 어댑터
    MVC
    상태공간트리
    다이어그램 그리기
    오브젝터 어댑터
    chatGPT
    RDBM
    Java
    Unity
    행동 UML 다이어그램
    구조패턴
    Reflex
    스택
    컴파일 상수
    HTML
    Proxy 패턴
    Adaptee
    DI
    ()=>
    Factory 패턴
    런타임 상수
    swea2112
    c#
    Abstract Factory 패턴
    구조적 UML 다이어그램
    SetTile
    12738
    UniRX
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
가든_
Abstract Factory 패턴
상단으로

티스토리툴바