참고한 책: 면접을 위한 CS 전공지식 노트 (http://www.yes24.com/Product/Goods/108887922)
1. 디자인 패턴과 프로그래밍 패러다임
1.1. 디자인 패턴
1.1.2. 팩토리 패턴
팩토리 패턴(factory pattern)
객체를 사용하는 코드에서 객체 생성부분을 떼어내 추상화한 패턴
&&
상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴.
상위 클래스와 하위 클래스 분리 -> 느슨한 결합
상위 클래스에서 인스턴스 생성 방식에 대해 알 필요 없음 -> 더 많은 유연성
객체 생성 로직 분리 -> 유지 보수성 증가.
public class C {
public Static void main(String[] args) {
Coffee l = CoffeeFactory.getCoffee("L", 4000);
coffee a = CoffeeFactory.getCoffee("A", 3000);
.....
}
}
CoffeeFactory 클래스에서 getCoffee() 메소드를 통해 DefaultCoffee, Americano, Latte 중 하나를 만들어(생성해)낸다.
궁금한 것
-Coffee Factory 라는 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스인 DefaultCoffee, Americano, Latte가 구체적인 내용을 결정하고 있다(?)
-의존성 주입이라고도 볼 수 있다(?) CoffeeFactory에서 Latte나 Americano의 인스턴스를 생성하는 것이 아닌 Americano와 Latte에서 생성한 인스턴스를 CoffeeFactory에 주입하고 있기 때문(?)
-위의 그림에서 추상화된 객체 생성 부분(DefaultCoffee, Latte, Americano???), 상속 관계에 있는 두 클래스(상위: CoffeeFactory?, 하위: DefaultCoffee?, Latte?, Americano?)는 각각 어떤 클래스일까?
'CS 스터디' 카테고리의 다른 글
1.1.6 이터레이터 패턴, 1.1.7 노출모듈 패턴 (0) | 2023.06.01 |
---|---|
1.1.5 프록시 패턴과 프록시 서버 (0) | 2023.06.01 |
1.1.4 옵저버 패턴 (0) | 2023.06.01 |
1.1.3 전략 패턴 (0) | 2023.05.31 |
1.1.1 싱글톤 패턴 (2) | 2023.05.29 |