디자인 패턴 Factory Pattern 개념과 예제
Factory Pattern이란?
▶객체 생성용 인터페이스는 서브클래스가 어떤클래스를 인스턴스화(객체 생성)할 지 결정할 수 있도록 합니다. 팩토리 메소드는 객체 생성을 서브 클래스에서 하도록 미룰 수 있게 해줍니다.
▶ 코드 요약: Store에서 계산기를 구매할 수 있습니다. 이때 계산기는 1 가지의 역할밖에 수행하지 못합니다. 사용자는 원하는 계산기를 구매합니다.
클래스 다이어그램과 코드를 확인하겠습니다.
1. Calculator interface
public interface Calculator {
double execute(double n1, double n2);
}
2. CalculatorSet class
public class CalculatorSet {
public Calculator orderCalculator(String name){
if(name.equals("add")){
return new AddCalculator();
}
else if(name.equals("minus")){
return new MinusCalculator();
}
else if(name.equals("mul")){
return new MulCalculator();
}
else{
return new DivCalculator();
}
}
}
3. AddCalculator class
public class AddCalculator implements Calculator {
@Override
public double execute(double n1, double n2) {
return n1+n2;
}
}
4. MibusCalculator class
public class MinusCalculator implements Calculator{
@Override
public double execute(double n1, double n2) {
return n1-n2;
}
}
5. DivCalculator class
public class DivCalculator implements Calculator{
@Override
public double execute(double n1, double n2) {
return n1/n2;
}
}
6. MulCalculator class
public class MulCalculator implements Calculator{
@Override
public double execute(double n1, double n2) {
return n1*n2;
}
}
7. Main class
public class Main {
public static void main(String[] args) {
Store store = new Store();
store.order("add");
double result1 = store.execute(1, 2);
System.out.println(result1);
store.order("minus");
double result2 = store.execute(3, 5);
System.out.println(result2);
}
}
// 출력 결과
// 3.0
// -2.0
위와 같이 CalculatorSet에서 어떠한 객체를 인스턴스화 할 것인지 판단해서 반환하는 형태로 Factory Pattern이 완성됩니다.
다음에는 singleton Pattern을 알아보겠습니다. 감사합니다.
전체 코드는 아래에서 확인 가능합니다:)
https://github.com/rlaehdals/design-pattern
'Desing Pattern' 카테고리의 다른 글
디자인 패턴 DAO Pattern 개념과 예제 (0) | 2022.01.01 |
---|---|
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제 (0) | 2021.12.31 |
디자인 패턴 (데코레이터 패턴) Decorator Pattern 개념과 예제 (0) | 2021.12.30 |
디자인 패턴 observer pattern(옵저버 패턴) 개념과 예제 (0) | 2021.12.30 |
디자인 패턴 (전략 패턴) strategy pattern 개념과 예제 (0) | 2021.12.29 |
댓글
이 글 공유하기
다른 글
-
디자인 패턴 DAO Pattern 개념과 예제
디자인 패턴 DAO Pattern 개념과 예제
2022.01.01 -
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제
2021.12.31 -
디자인 패턴 (데코레이터 패턴) Decorator Pattern 개념과 예제
디자인 패턴 (데코레이터 패턴) Decorator Pattern 개념과 예제
2021.12.30 -
디자인 패턴 observer pattern(옵저버 패턴) 개념과 예제
디자인 패턴 observer pattern(옵저버 패턴) 개념과 예제
2021.12.30