[spring] (1) 불필요한 객체 생성을 하지 말자

orca·2022년 10월 27일
0

Spring

목록 보기
1/13

반년 전 들었던 Spring 심화반 강의를 리뷰하며 정리한 내용입니다

불필요한 객체 생성 방지

싱글턴은 다른 생성 패턴과 달리 하나의 객체만 생성을 제한하는 패턴입니다. 그리고 생성된 객체는 공유되어 어디서든 접근할 수 있습니다.
쉽게 배워 바로 써먹는 디자인 패턴

여기서 하나의 객체만 생성을 제한하는 이유가 무엇일까?

아래 ProductService 코드의 문제점을 생각해보아요

public class ProductService {
    public Product createProduct(ProductRequestDto requestDto) throws SQLException {
        Product product = new Product(requestDto);
        ProductTempRepository productRepository = new ProductTempRepository();
        productRepository.createProduct(product);

        return product;
    }
}

객체 생성 과정

ProductTempRepository productRepository = new ProductTempRepository();

ProductTempRepository = 클래스 = 가위틀
productRepository = 객체 = 가위

객체 생성은 가위틀에서 가위를 만들라는 것!

현재 코드는 가위가 필요할때마다 가위를 만들어서 사용하고 있음

아래와 같이 수정하자

public class ProductService {

    private final ProductTempRepository productRepository;

    public ProductService() {
        this.productRepository = new ProductTempRepository();
    }

    public Product createProduct(ProductRequestDto requestDto) throws SQLException {
        Product product = new Product(requestDto);
        productRepository.createProduct(product);

        return product;
    }
}

0개의 댓글