Ian's Archive 🏃🏻

thumbnail
팩토리 메서드 패턴 정리
DesignPattern
2025.04.02.

팩토리 메소드 패턴

1. 패턴 소개

구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다.

  • 다양한 구현체(Product)가 있고, 그중에서 특정한 구현체(creator)를 만들 수 있는 다양한 팩토리를 제공할 수 있다.

2. 패턴 적용하기, 3. 인터페이스 적용하기

확장에는 열려있고, 변경에는 닫혀있는 구조로 만들어본다.

2

  • 클라이언트 코드는 바뀔 수 있지 않냐?
    • 기존 product와 factory가 변경되지 않는다.

1

작성한 코드

4. 장점과 단점

  • 팩토리 메소드 패턴을 적용했을 때의 장점은? 단점은
    • 장점
      • 확장에 열려있고, 변경에 닫혀있는 코드를 작성 가능하다.
      • 기존의 코드를 건들이지 않고, 새로운 인스턴스를 다른 방법으로 확장이 가능하다.
      • 가능한 이유 -> product와 creator간에 느슨한 결합이 되어있기 때문이다.
    • 단점
      • 각자의 역할을 나누다 보니 클래스가 증가한다.
  • “확장에 열려있고 변경에 닫혀있는 객체 지향 원칙”(OCP)을 설명하세요.
    • 변경에 닫혀있다. -> 기존 코드를 변경하지 않으면서 새로운 기능을 확장할 수 있다.
  • 자바 8에 추가된 default 메소드에 대해 설명하세요.
    • 인터페이스에서 기본적인 구현체를 만들 수 있다. (이전에는 추상 메서드만 만들 수 있었다.)
    • 자바 9에서는 private 메서드를 정의할 수 있다.

5. 자바와 스프링에서 찾아보는 패턴

  • 단순한 팩토리 패턴
    • 매개변수의 값에 따라 또는 메소드에 따라 각기 다른 인스턴스를 리턴하는 단순한 버전의 팩토리 메서드 패턴
    • ex - java.lang.Calendar 또는 java.lang.NumberFormat
  • 스프링의 BeanFactory
    • Object타입의 Product를 만드는 BeanFactory라는 Creator

Reference

코딩으로 학습하는 GoF의 디자인 패턴 - 백기선

Thank You for Visiting My Blog, I hope you have an amazing day 😆
© 2023 Ian, Powered By Gatsby.