728x90
- 객체를 사용하는 코드에서 생성 부분을 떼어내 추상화한 패턴이다.
- 객체 생성을 캡슐화한다.
- 상속 관계에 있는 두 클래스에서 상위 클래스가 뼈대를 형성한다.
- 하위 클래스에서 객체 생성에 관한 구체적인 내용을 담는다.
- 느슨한 결합, 생성 방식에 대해 전혀 알 필요가 없기 때문에 유연성이 높다.
- 생성 코드가 따로 떼어져 있어 코드 리팩터링을 할 때 한 곳만 고칠 수 있으니 유지 보수성이 증가된다.
- 확장성이 높아진다.
- 매서드에 대한 메모리 할당을 한 번만 할 수 있는 장점이 있다.
// 제품 인터페이스
public interface Product {
void doSomething();
}
// 구체 제품 클래스 1
public class ConcreteProduct1 implements Product {
@Override
public void doSomething() {
// 구체적인 동작 구현
}
}
// 구체 제품 클래스 2
public class ConcreteProduct2 implements Product {
@Override
public void doSomething() {
// 구체적인 동작 구현
}
}
// 팩토리 인터페이스
public interface Factory {
Product createProduct();
}
// 구체 팩토리 클래스 1
public class ConcreteFactory1 implements Factory {
@Override
public Product createProduct() {
return new ConcreteProduct1();
}
}
// 구체 팩토리 클래스 2
public class ConcreteFactory2 implements Factory {
@Override
public Product createProduct() {
return new ConcreteProduct2();
}
}
728x90
'면접준비' 카테고리의 다른 글
[SW정책연구] SW산업 연간보고서 1부 정리 (1) | 2024.05.03 |
---|---|
[IBK 기업은행] 디지털 필기 회고 (0) | 2024.05.03 |
[Docker] Network 지식 (1) | 2024.01.30 |
(back) Web, Was server (0) | 2024.01.10 |
디자인 패턴 - 싱글톤 패턴 특징 (1) | 2024.01.08 |