less than 1 minute read

정적 팩토리 메서드 패턴

페어 프로그래밍을 하면서, 페어분이 팩토리 메서드 패턴에 대해 소개해주셔서 처음 사용해보게 되었다. 정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메서드(static 메서드) 라고 할 수 있다. 직접적인 생성자를 통해 객체를 생성하는 것이 아닌 메서드를 통해서 객체 생성하는 것을 정적 팩토리 메서드라고 한다.

  • 팩토리 메서드 패턴을 사용하여 Car 객체들을 생성을 하는 메서드
    public static List<Car> of(String names) {
        String[] arrNames = names.split(",");
        return  Arrays.stream(arrNames)
                .map(String::trim)
                .map(Car::new)
                .collect(Collectors.toList());
    }


유틸 클래스

이렇게 모든 메소드가 static이고 객체를 만들어 쓰지 않는 클래스를 유틸리티 클래스라고 한다.
일단 당연히, 유틸리티 클래스는 인스턴스화 될 필요가 없다.
그래서 생성자 사용을 방지하기 위해 기본 생성자를 private으로 만들기도 하고, 상속을 방지하기 위해 클래스를 final로 선언한다고 한다.

유틸리티 클래스에서 비즈니스 로직을 다루는 것은 좋지 않다고 한다.
유틸리티 클래스로 설계하기 전에, 인스턴스 변수가 있는지 비즈니스 로직이 필요한 클래스인지 살펴보면 좋을 것 같다.

Categories:

Updated: