상세 컨텐츠

본문 제목

[Java]정적 펙토리 메서드

카테고리 없음

by 정성윤TV 2025. 4. 8. 16:45

본문

정적 팩토리 메서드란?

static 키워드를 붙여서 만든 객체 생성 전용 메서드이다. (static을 사용하면 객체 없이 바로 사용가능)
생성자 대신 객체를 만들고 초기값도 넣을 수 있다.

JPA에서 setter쓰지 않는게 좋다고 했는데 그것을 해결하기 위해 정적팩토리 메서드를 사용한다고 한다.

public class Member {
    private String name;

    // 생성자를 private으로 숨기고
    private Member(String name) {
        this.name = name;
    }

    // 정적 팩토리 메서드
    public static Member of(String name) {
        return new Member(name); // 내부에서 객체 생성 + 값 설정
    }

    public String getName() {
        return name;
    }
}

 

Member m = Member.of("홍길동");
System.out.println(m.getName()); // 👉 홍길동 출력

이런 느낌~

 

 

여러개의 값을 넣고싶을 때

public class User {
    private String name;
    private int age;

    private User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static User of(String name, int age) {
        return new User(name, age); // 내부에서 필드에 다 넣어줌
    }
}

 

User user = User.of("철수", 25);

 

 

장점

불변객체를 만들기 쉽다.

new 키워드 안 써도 됨

리턴 타입을 자유롭게 바꿀 수 있음