Object-Oriented Programming/Design Pattern
Abstract Factory Pattern, 추상 팩토리 패턴
yongmin.Lee
2022. 5. 11. 23:23
Abstract Factory Pattern ?
- 객체를 생성하려면 해당 객체를 구체적으로 정의한 코드에 대해 소스 코드 의존성이 발생 !
- 구체적인 클래스에 의존하지 않고, 서로 연관되거나 의존적인 객체들의 조합을 생성하는 인터페이스를 제공하는 패턴
- 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 "군"을 생성하기 위한 인터페이스를 제공합니다.
Application - Abstract Factory Pattern
- AbstractFactory : 실제 팩토리 클래스의 공통 인터페이스
- ConcreteFactoryImpl : 구체적인 팩토리 클래스로 AbstractFactory 클래스의 추상 메서드를 오버라이드함으로써 구체적인 제품을 생성한다.
- AbstractProduct : 제품의 공통 인터페이스
- ConcreteProductImpl : 구체적인 팩토리 클래스에서 생성되는 구체적인 제품
- Application은 AbstractFactory 인터페이스의 makeSvc 메소드를 호출하고, AbstractProduct 인터페이스로 리턴된 ConcreteProductImpl를 사용한다
Abstract Factory Pattern 장점
- 클래스를 생산하는 부분과 사용하는 부분을 분리하여 느슨하게 결합 -> 유연성과 확장성
- 의존을 피하고 추상화를 지향할 수 있다.
- 구현 클래스에 직접 의존하지 않고도 서로 관련된 객체들로 이루어진 제품군을 만들 수 있다.
참고자료
https://johngrib.github.io/wiki/pattern/
https://flower0.tistory.com/416
https://gmlwjd9405.github.io/2018/08/08/abstract-factory-pattern.html