팩토리 메서드 패턴

이규훈·2023년 9월 28일

of 메서드는 자바와 다른 프로그래밍 언어에서 객체 생성에 사용되는 정적 팩토리 메서드의 일반적인 명명 규칙 중 하나입니다. 이 메서드는 특히 불변 객체나 컬렉션의 초기화에 자주 사용됩니다. of 메서드의 주요 특징과 사용 사례를 자세히 살펴보겠습니다.

1. 의미

of 메서드는 주어진 인자들을 사용하여 객체를 생성하고 반환하는 역할을 합니다. 이 메서드의 이름은 "이러한 요소들로 구성된 객체를 반환하라"라는 의미를 내포하고 있습니다.

2. 장점

  • 명확성: of 메서드는 객체 생성의 의도를 명확하게 표현합니다.
  • 유연성: 다양한 인자 조합에 대해 여러 버전의 of 메서드를 제공할 수 있습니다.
  • 불변성: of 메서드는 불변 객체의 생성에 특히 유용합니다. 생성된 객체의 상태를 변경할 수 없게 만들어, 프로그램의 안정성을 높일 수 있습니다.

3. 사용 사례

Java의 표준 라이브러리에서의 예

Java 8 이후의 List, Set, Map 인터페이스에서는 of 메서드를 사용하여 불변 컬렉션을 생성할 수 있습니다.

List<String> list = List.of("A", "B", "C");
Set<String> set = Set.of("A", "B", "C");
Map<String, Integer> map = Map.of("A", 1, "B", 2);

사용자 정의 클래스에서의 예

public class Point {
    private final int x;
    private final int y;

    private Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public static Point of(int x, int y) {
        return new Point(x, y);
    }
}

위의 예에서 Point 클래스는 of 메서드를 통해 객체를 생성하고 반환합니다. 이를 통해 사용자는 Point.of(1, 2)와 같은 방식으로 객체를 생성할 수 있습니다.

4. 주의 사항

  • of 메서드를 사용할 때는 반환되는 객체의 불변성을 보장하는 것이 좋습니다. 이렇게 하면 사용자는 of 메서드를 통해 생성된 객체가 변경되지 않을 것이라는 확신을 가질 수 있습니다.
  • of 메서드는 주로 불변 객체나 컬렉션의 초기화에 사용되므로, 객체의 상태를 변경하는 연산에는 사용하지 않는 것이 좋습니다.

결론

of 메서드는 객체 생성의 의도를 명확하게 표현하는 정적 팩토리 메서드의 일반적인 명명 규칙입니다. 이 메서드를 사용하면 코드의 가독성을 높이고, 객체의 불변성을 쉽게 보장할 수 있습니다.

profile
개발취준생

0개의 댓글