당근개발자
당근당근
당근개발자
전체 방문자
오늘
어제
  • 분류 전체보기 (157)
    • codepresoo (13)
    • JAVA (1)
    • JS (12)
    • 코딩 테스트 (7)
    • Spring (21)
    • 자료구조 (4)
    • HTTP (7)
    • JSP (36)
    • Etc (21)
    • RESTful (11)
    • React (1)
    • k8s (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • S
  • #코드프레소. #codepresso #대외활동 # IT교육 #코딩강의 #코딩 이러닝 # 무료 IT교육 #무료 코딩교육
  • 코드프레소. #codepresso #대외활동 # IT교육 #코딩강의 #코딩 이러닝 # 무료 IT교육 #무료 코딩교육
  • 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online
  • dobule_linked_list#java
  • @JsonFilter#당근개발자
  • Primitive#Wrapper
  • thymleaf error#template might not exist
  • stack#자료구조
  • thymleaf#layout#fragment#thymleaf layout 적용안됌
  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
  • 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online.
  • queue#자료구조
  • 패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #수강하고있는강의명
  • HATEAOD
  • 이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
당근개발자

당근당근

Etc

빌더 패턴

2021. 11. 3. 14:26

빌더 패턴은 복잡한 객체를 생성하는 방법을 정의하는 클래스와  표현하는 방법을 정의하는 클래스를 별도로 분리하여,

서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴이다.

 

 

빌더 패턴은 생성 패턴중 하나이다.

생성 패턴에는 두가지 이슈가 있다.

 

1. 생성 패턴은 시스템이 어떤 Concrete Class를 사용하는지에 대한 정보를 캡슐화한다.

2. 생성 패턴은 이들 클래스의 인스턴스들이 어떻게 만들고 어떻게 결합하는지에 대한 부분을 완전히 가려준다.

 

 

빌더패턴은 많은 Optional한 멤버변수(혹은 파라미터)나 지속성 없는 상태 값들에 대해 처리해야 하는 문제들을 해결한다.

 

예를 들어, 팩토리 패턴이나 추상 팩토리 패턴에서는 생성해야하는 클래스에 대한 속성값이 많을 때 아래와 같은 이슈들이있다.

1. 클라이언트 프로그램으로부터 팩토리 클래스로 많은 파라미터를 넘겨줄 때, 타입,순서 등에 관리가 어려워져 에러가 발생활 확률이 높아진다.

2. 경우에 따라 필요없는 파라미터들에 대해서 팩토리 클래스에 일일이 null 값을 넘겨줘야한다.

3. 생성해야 하는 sub class가 무거워지고 복잡해짐에 따라 팩토리 클래스 또한 복잡해진다.

 

빌더 패턴은 이러한 문제들을 해결하기 위해 별도의 Builder 클래스를 만들어 필수 값에 대해서는 생성자를 통해, 

선택적인 값들에 대해서는 메서드를 통해 step-by-step으로 값을 입력 받은 후에 build() 메서드를 통해 최종적으로 

하나의 인스턴스를 리턴하는 방식이다.

 

'Etc' 카테고리의 다른 글

Thymleaf/ layout / fragment (decorate) 오류  (0) 2022.02.26
커리큘럼  (0) 2022.01.08
jdbcTemplate  (0) 2021.11.02
Assertions / assertJ  (0) 2021.10.30
css display none: transition  (0) 2021.09.01
    'Etc' 카테고리의 다른 글
    • Thymleaf/ layout / fragment (decorate) 오류
    • 커리큘럼
    • jdbcTemplate
    • Assertions / assertJ
    당근개발자
    당근개발자

    티스토리툴바