본문 바로가기
반응형
이펙티브 자바

[이펙티브 자바] 생성자 대신 정적 팩터리 메서드 고려하라

by brightGarden02 2023. 12. 8.

2장 객체 생성과 파괴

 

아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라

 

예시) static을 통한 from 메서드를 통해 StudentDto를 생성하는 코드이다.

public StudentDto(User student) {
    this.studentId = student.getId();
    this.studentName = student.getName();
}

public static StudentDto from(User student) {
    return new StudentDto(student);
}

 

 

사용방법은 다음과 같다.

StudentDto studentDto = StudentDto.from(student);

 

 

 

정적 팩터리 메서드를 적용하면

1. 메서드 이름을 통해 클래스 생성이 가능하다.

정해진 네이밍 규칙에 의해 사용 방법을 명확히 할 수 있다. 협업에 유용하다.

 

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

미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용이 가능하다.

 

3. 코드 가독성, 유지보수성이 향상된다.

 

 

정적 팩토리 메서드 네이밍 규칙 

from : 하나의 매개 변수를 받아서 객체를 생성

 

 

참고:

댓글


반응형
반응형