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();
}
}
}
언제 사용하면 좋을 까?
- 작성해야하는 객체들의 정확한 유형과 의존관계를 미리 알 수 없는 경우
- 내부 컴포넌트를 확장할 경우가 생길 여부가 있을 경우
- 객체 재사용성을 높이고 싶을 경우
참조