팩토리 패턴

2024. 5. 28. 14:54면접을 위한 cs 전공지식 노트/디자인 패턴

디자인 패턴의 3가지 분류

 

  1. 생성 패턴 (Creational) : 객체의 생성 방식 결정
    Class - creational patterns, Object - creational patterns.
    예) DBConnection을 관리하는 Instance를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막음.
  2. 구조 패턴 (Structural) : 객체간의 관계를 조직
    예) 2개의 인터페이스가 서로 호환이 되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어서 연결시킬 수 있도록 함.
  3. 행위 패턴 (Behavioral): 객체의 행위를 조직, 관리, 연합
    예) 하위 클래스에서 구현해야 하는 함수 및 알고리즘들을 미리 선언하여, 상속시 이를 필수로 구현하도록 함.

 

 

 

팩토리 패턴은 객체 생성 관련 상세 로직을 숨기고, 객체를 생성하는 코드의 유연성을 높이는데 목표로 하는 생성 패턴에 해당한다.

 

 

 

 

팩토리 패턴

 

팩토리 패턴은 객체 생성에 관한 로직을 하위 클래스에 위임하는 패턴.

상위 클래스와 하위 클래스가 분리 -> 느슨한 결합

 

 

Java Spring 백엔드 개발자가 팩토리 메서드 패턴을 사용하는 경우

 

  • 다양한 타입의 객체 생성 : 서로 다른 타입의 객체를 생성해야 하는 경우, 각 타입에 맞는 팩토리 메서드를 구현하여 사용할 수 있다. 예를 들어, 다양한 타입의 데이터베이스 연결을 생성하는 경우, 각 데이터베이스 타입에 맞는 연결 객체를 생성하는 팩토리 메서드를 구현할 수 있다.
  • 빈(Bean) 생성 : Spring 프레임워크에서는 빈 팩토리를 통해 빈 객체를 생성하고 관리한다. 이때 빈 팩토리는 팩토리 메서드 패턴을 사용하여 빈 객체를 생성한다. 개발자는 @Bean 어노테이션을 사용한 메서드를 통해 빈 객체를 생성하고, Spring 컨테이너는 이 메서드를 호출하여 빈 객체를 생성하고 관리한다.
  • 의존성 주입(Dependency Injection) : 팩토리 메서드 패턴은 의존성 주입에도 사용된다. 객체가 다른 객체를 필요로 할 때, 팩토리 메서드를 통해 필요한 객체를 생성하고 주입할 수 있다. 이를 통해 코드의 결합도를 낮추고 유연성을 높일 수 있다.

'면접을 위한 cs 전공지식 노트 > 디자인 패턴' 카테고리의 다른 글

이터레이터 패턴  (0) 2024.06.03
프록시 패턴과 프록시 서버  (0) 2024.05.31
옵저버 패턴  (0) 2024.05.30
전략 패턴  (0) 2024.05.29
싱글톤 패턴  (0) 2024.05.27