PSD( Private-Self-Development )

팩토리 메서드 패턴 본문

Backend/디자인패턴

팩토리 메서드 패턴

chjysm 2023. 3. 21. 16:13

팩토리 메서드 패턴?

팩토리 패턴의 확장 패턴으로 팩토리 패턴템플릿 메서드 패턴이 결합된 패턴이다.

부모 클래스에서 객체들을 생성할 수 있는 인터페이스를 제공하고
자식 클래스 들이 생성될 객체들의 유형을 변경 할 수 있도록 하는 생성 패턴이다.

 

팩토리 메서드 패턴의 장점

  • 객체간의 느슨한 결합  구현 
  • 단일 책임의 원칙 
  • 개방/폐쇠의 원칙

=> 객체 재사용성이 높다 

 

팩토리 메서드 패턴의 단점

  • 패턴을 구현하기 위함 자식 클래스를 구현해야 하므로 코드가 복잡해 질 수 있다. 
    => 기존 생성 클래스의 계층 구조에 패턴을 도입하는게 BEST!

 

팩토리 메서드 구현

public abstract class Factory {

    public Product creat( String brand ){
        return createProduct(brand);
    }
    public abstract Product createProduct(String brand);
}
public class ProductFactory extends Factory{
    @Override
    public Product createProduct(String brand) {
    	if( "samsung".equal( brand ) ){
        	return new SamsungProduct();
        } else if( "lg".equal( brand ) ){
        	return new LgProduct();
        }
    }
}

 

언제 사용하면 좋을 까?

  • 작성해야하는 객체들의 정확한 유형과 의존관계를 미리 알 수 없는 경우
  • 내부 컴포넌트를 확장할 경우가 생길 여부가 있을 경우
  • 객체 재사용성을 높이고 싶을 경우

 


참조 

https://refactoring.guru/ko/design-patterns/factory-method

'Backend > 디자인패턴' 카테고리의 다른 글

빌더 패턴  (0) 2023.05.09
추상 팩토리 패턴  (0) 2023.05.09
싱글톤 패턴(Singleton pattern)  (0) 2023.03.20
팩토리 패턴  (1) 2023.03.15
옵저버 패턴  (1) 2023.02.17