객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴
상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴
상위 클래스와 하위 클래스가 분리되어서 느슨한 결합을 가짐
상위 클래스에서는 인스턴스 생성 방식에 대해 알 필요가 없어서 더 많은 유연성을 가짐
객체 생성 로직이 따로 뗴어져 있어서 코드를 리팩토링 하더라도 유지 보수성이 유지됨
=> 인터페이스를 하나 두고 그 부분을 가지고 하나의 큰 공장을 만들어서 공통된 부분을 사용하는 것으로 보임
=> 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 혹은 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때 사용한다고 함
심플 팩토리 패턴, 팩토리 메서드 패턴, 추상 팩토리 패턴 등이 있다.
서로 간의 종속성을 낮추고, 결합도를 느슨하게 하며(Loosely Coupled), 확장을 쉽게 함
상속과 구현의 차이
면접을 위한 CS 전공 지식 노트