자바빈즈 패턴 (JavaBeans Pattern)

2023. 6. 14. 00:13· 코딩/WEB 개발
목차
  1. 1-1. 자바빈즈 패턴이란?
  2. 1-2. 자바빈즈 패턴 예시

0. 개요

다양한 형태의 Class들을 객체화하는 3가지 패턴이 있다.

  1. 점층적 생성자 패턴
  2. 자바 빈즈 패턴
  3. 빌더 패턴

세 가지에 대해 간략히 알아보고 싶다면 아래 블로그를 참고하자.
https://wildeveloperetrain.tistory.com/29
https://wildeveloperetrain.tistory.com/30

1. 자바빈즈 패턴

필자가 현재 사용하고자 하는 자바빈즈 패턴과 그 사용법에 대해 간단히 Alaboja.

1-1. 자바빈즈 패턴이란?

매개변수가 없는 생성자로 객체를 만든 후 Setter 메서드들을 호출해서 원하는 매개변수의 값을 설정하는 방식이다.

장점:

  1. 코드가 길지만 인스턴스 생성이 쉽다.
  2. 가독성이 좋다.

단점:

  1. 객체 하나를 만들기 위해 많은 메서드를 호출해야 한다.
  2. 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다.
  3. 클래스를 불변으로 만들 수 없다.

장점 때문에 사용한다고 봐도 되지만... 빌더 패턴의 우수함을 설명하기 위해 등장하는 디자인 패턴이라는 말도 있긴 하다.

1-2. 자바빈즈 패턴 예시

@Setter
@NoArgsConstructor
public class CustomClass {
	private int paramInt;
    private String paramStr;
    private Object paramObj;
}

CustomClass의 애노테이션을 보면 매개변수 필요 없는 생성자가 있고, 각 멤버변수에 대한 Setter가 있다.

그러면 아래와 같이 할 수 있겠다.

CustomClass customClass = new CustomClass();
customClass.setParamInt(123);
customClass.setParamStr("sample string");
customClass.setParamObj(null);

자 이러면 customClass 인스턴스는 값이 채워졌고, 원하는 곳에 쓰면 된다.

 

 

 

흠. 필자의 경우 MyBatis Generator를 쓰는 바람에 domain 클래스에 builder를 추가할 수 없는 상황이라, 고민하다가 차선책으로 자바빈즈 패턴을 사용했다.

 

+) 다음날 알게된 사실인데

MyBatis Generator의 plugin 중 FluentBuilderPlugin이 있는데, 이를 설정하면 generate된 domain 객체들에게도 Builder를 생성해주는 기능이 있었다.

new CustomClass().withParam1("123").withParam2("234"); 이런 식으로 빌더를 사용할 수 있게 된다...

그래서 프로젝트에서 모든 자바빈즈 패턴을 다시 빌더 패턴으로 바꿔줬다!

저작자표시 비영리 (새창열림)

'코딩 > WEB 개발' 카테고리의 다른 글

HTTP Method, PUT과 PATCH의 차이점  (0) 2023.06.28
동시 편집에 대해...  (0) 2023.06.19
RESTFul한 API 설계  (0) 2023.06.14
세션, 세션의 보안, HttpSession  (0) 2023.06.13
MyBatis, MyBatis-Spring 동작 원리  (0) 2023.06.11
  1. 1-1. 자바빈즈 패턴이란?
  2. 1-2. 자바빈즈 패턴 예시
'코딩/WEB 개발' 카테고리의 다른 글
  • 동시 편집에 대해...
  • RESTFul한 API 설계
  • 세션, 세션의 보안, HttpSession
  • MyBatis, MyBatis-Spring 동작 원리
승농
승농
나는 실시간으로 강해지고 있는 백엔드 개발자.
승농
개발자국의 승농
승농
전체
오늘
어제
  • 분류 전체보기 (57)
    • 자유 (0)
    • 코딩 (33)
      • Java (15)
      • WEB 개발 (14)
      • Kotlin (1)
      • DB (1)
    • PS - CodeUp (9)
    • PS - BOJ (15)

블로그 메뉴

  • 블로그 소개
  • 방명록

공지사항

인기 글

관리자

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
승농
자바빈즈 패턴 (JavaBeans Pattern)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.