The Office Lover
디자인 패턴 - 팩토리 패턴(factory pattern) 본문
팩토리 패턴(factory pattern
)이란?
- 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 한다
- 즉, 팩토리 메서드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것
자바코드로 이해하기
- 핵심은 모두 같은 부모 클래스를 상속한다는 점
public interface Shape {
void draw();
}
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Inside Rectangle :: draw() method.");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Inside Square :: draw() method.");
}
}
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Inside Circle :: draw() method.");
}
}
팩토리 메서드의 핵심 코드
- parameter를 통해 요청한 타입에 대한 클래스를 생성해서 리턴하는 것이 핵심
public class ShapeFactory {
public Shape getShape(String shapeType) {
if (shapeType == null) {
return null;
}
if (shapeType.equalsIgnoreCase("CIRCLE")) {
return new Circle();
} else if (shapeType.equalsIgnoreCase("RECTANGLE")) {
return new Rectangle();
} else if (shapeType.equalsIgnoreCase("SQUARE")) {
return new Square();
}
return null;
}
}
장점 | 단점 |
확장성 테스트 용이 |
코드양 증가 코드파악 난이도 증가 |
출처
https://jusungpark.tistory.com/14
https://www.youtube.com/watch?v=lINCOyvJo_M
https://www.youtube.com/watch?v=QOX10ntWj5Y
'Design Patterns' 카테고리의 다른 글
인터페이스 분리 원칙 - interface segregation principle, ISP (0) | 2023.07.28 |
---|---|
리스코프 치환 원칙 - Liskov Substitution Principle, LSP (0) | 2023.07.27 |
단일 책임 원칙 - single responsibility principle, SRP (1) | 2023.07.27 |
디자인 패턴 - 개방 폐쇄 원칙 (0) | 2023.06.08 |
인터페이스를 이해하는 다양한 방법 (0) | 2023.06.05 |