정적 팩토리 메소드 패턴 적용 (이펙티브 자바)

yeezze·2022년 12월 12일
0

form 프로젝트

목록 보기
3/7

이펙티브 자바 아이템 1

생성자 대신 정적 팩터리 메서드를 고려하라

정적 팩터리 메서드가 생성자보다 좋은 장점 다섯 가지

1. 이름을 가질 수 있다.

2. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다.

3. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다.

4. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다.

5. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다.


Java에서 정적 팩토리 메서드의 예시
List.of()

적용

진행 중인 개인 프로젝트 내에 Event 객체에 적용했다.

    private Event(ObjectId formId, LocalDateTime start, LocalDateTime end, int winnersNum) {
  
    }

    public static Event createfromForm(Form form) {
        return new Event(form.getId(), form.getStartTime(), form.getEndTime(), form.getWinnersNumber());
    }

생성자는 private로 캡슐화를 해주었다.
생성자에 이름을 가질 수 있게 하여 가독성을 높였다.
외부에서 Event 객체의 생성자를 볼 수 없도록 하여 객체 생성을 캡슐화하는 장점을 가질 수 있었다.

참고
이펙티브자바

profile
백엔드 개발자 😊

0개의 댓글