구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다.
다양한 구현체(Product)가 있고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리(Creator)를 제공할 수 있다.
위까진 무슨 말인지 알아듣기가 힘들고, 실제 코드를 보면서 설명을 들으니까 이해가 된다.
회사에서 했던 것들을 팩토리 패턴으로 바꿀 수 있을 것 같다. 근데 모르는 단어가 너무 많이 나와 눈물나
의존성 주입 디펜던시 인젝션 진짜 어렵다
자바 9부터 private 사용가능 자바 8은 private를 사용할 수 없기 때문에 추상메서드로 정의하기
중간에 계층구조 하나 더 만들기
와 인텔리제이 클래스파일들 extends한거 다이어그램 볼 수 있어대박
- 팩토리 메서드의 장단점 이야기 하기
장점 :
주석 없이 코드를 읽기 수월하다고 생각함 (기존 코드를 건드리지 않아서 복잡해지지않고 간결해짐)
기존 로직을 건드리지 않고 새로운 인스턴스를 다른 방법으로 얼마든지 확장이 가능함
product와 create의 느슨한 결합
단점 :
클래스가 여러개로 늘어나게 됨
- "확장에 열려있고 변경에 닫혀있는 객체 지향 원칙" OCP(Open Closed Principle)에 대해 설명하기
변경에 닫혀있다 : 기존 코드를 변경하지 않고
확장에 열려있다 : 기능을 확장할 수 있다
- 자바 8에 추가된 default 메서드에 대해 설명하기
인터페이스에는 항상 추상 메서드만 정의할 수 있었고 인터페이스를 구현하는 클래스에서 그 메서드를 구현하거나 추상클래스로 만들어지거나 하는 방법밖에 없었는데 자바8부터는 인터페이스에 기본 구현체를 만들 수 있어서 인터페이스를 구현하거나 상속하는 클래스도 해당 기능을 사용할 수 있게 됨
자바8부터는 추상 클래스를 잘 사용하지 않고 인터페이스의 default 메서드를 사용함
여기서 자바9에 있는 private 메서드까지 공부하기
자바에 있는 Calendar가 심플팩토리메서드를 사용해서 만들어져 있으니 참고하기
그리고 Spring이 제공하는 BeanFactory가 팩토리메서드패턴을 구현한 구현체라고 볼 수 있다고 한다.
'인강 > GoF의 디자인패턴' 카테고리의 다른 글
추상 팩토리 (Abstract factory) 패턴 (0) | 2022.02.07 |
---|---|
싱글톤(Singleton)패턴 복습 (0) | 2022.02.04 |
싱글톤 패턴 수업 듣는 중에 궁금한게 생겼다. (0) | 2022.02.03 |
디자인패턴 (0) | 2021.11.03 |
댓글