꿀똥벌레
꿀똥벌레 개발 블로그
꿀똥벌레
전체 방문자
오늘
어제
  • 분류 전체보기 (90)
    • JAVA (17)
    • SPRING (14)
    • Elasticsearch (4)
    • GRADLE (2)
    • HTML, CSS (0)
    • JAVASCRIPT (0)
    • GIT (1)
    • Vue.js (1)
    • server (1)
    • Python (0)
    • IT리뷰 (0)
    • 인프라 (6)
    • IOS (21)
    • 디자인패턴 (20)
    • Kafka (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스프링 인티그레이션
  • KEEPALIVE
  • java
  • elasticsearch
  • maxConnPerRoute
  • 엘라스틱서치
  • SWIFT
  • maxConnTotal
  • persistent connection
  • persistence connection
  • connectionRequestTimeout
  • 인덱스 템플릿
  • mappings
  • Index Template
  • Index
  • spring integration
  • ES
  • springintegration
  • 스프링 인테그레이션
  • spring

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
꿀똥벌레

꿀똥벌레 개발 블로그

(생성 패턴)추상 팩토리 패턴
디자인패턴

(생성 패턴)추상 팩토리 패턴

2023. 4. 23. 01:56

사용 시점 및 이유

  1. 인스턴스를 생성하고 복합하는 부분과 인스턴스를 사용하는 부분을 분리할 때
  2. 제품군(일련의 관련 클래스)를 생성하는데 있어 다른 제품군으로 대체될 가능성이 있을 때
  3. 관련 클래스들이 함께 사용하도록 설계 되었을 때

패턴 구현

  1. 팩토리 인터페이스가 있고, 그것을 구현하는 실제 구현체가 있다.
  2. 구상 클래스 생성 일련의 과정은 팩토리 클래스 내부에 캡슐화 되어 있다.
  3. 클라이언트는 인터페이스를 통해 구상 클래스(집합)을 생성한다.
  4. 추가 적인 클래스가 필요하다면, 팩토리 인터페이스를 구현하여 생성하도록 한다.

  • Context 는 AbstractFactory 구현체를 받는다.
  • Context#create 메소드는 factory의 createProduct(), createItem()을 이용해 필요한 구상 클래스 Result를 만든다.
  • Result를 만드는 일련의 과정이 팩토리 모두가 동일하다면, Context가 필요 없이 AbstractFactory를 추상클래스로 선언하고, 추상 메소드에서 그 과정을 메소드로 선언한다.
저작자표시 (새창열림)

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

(구조패턴) 데코레이터 패턴  (0) 2023.04.28
(구조패턴) 브릿지패턴  (0) 2023.04.25
(구조패턴) 어댑터패턴  (0) 2023.04.25
(생성패턴) 프로토타입 패턴  (0) 2023.04.24
(생성패턴) 빌더패턴  (0) 2023.04.23
    꿀똥벌레
    꿀똥벌레
    개발자 꿀똥벌레 입니다.

    티스토리툴바