반응형
Factory Method Pattern은 객체를 생성하는 디자인 패턴 중 하나로, 객체 생성 로직을 하위 클래스로 위임함으로써 인스턴스화를 수행하는 클래스와 실제 생성되는 객체 클래스를 분리합니다. 이 패턴은 객체 생성에 관한 로직을 캡슐화하고, 새로운 타입의 객체 추가 시 코드의 변경을 최소화하는 데 도움을 줍니다.
기본 구조
Factory Method Pattern은 주로 다음의 두 가지 구성 요소로 이루어져 있습니다
- Creator: 객체를 생성하는 공통 인터페이스 또는 추상 클래스입니다.
- ConcreteCreator: 실제 객체를 생성하는 클래스입니다.
언제 사용해야 하는가?
- 객체 생성과 클래스 구현을 분리하고 싶을 때
- 시스템에 새로운 객체 타입을 추가할 때 코드 변경을 최소화하고 싶을 때
- 초기화 로직이 복잡하거나 클래스에 대한 정보를 숨기고 싶을 때
As-Is 예시 (Factory Method Pattern 사용 전)
public class Button
{
public Button(string type)
{
if(type == "Windows")
{
// Windows 버튼 생성 로직
}
else if(type == "Mac")
{
// Mac 버튼 생성 로직
}
// ... 여러 버튼 타입들 ...
}
}
To-Be 예시 (Factory Method Pattern 사용 후)
// Creator
public abstract class ButtonFactory
{
public abstract Button CreateButton();
}
// ConcreteCreator
public class WindowsButtonFactory : ButtonFactory
{
public override Button CreateButton()
{
// Windows 버튼 생성 로직
return new WindowsButton();
}
}
public class MacButtonFactory : ButtonFactory
{
public override Button CreateButton()
{
// Mac 버튼 생성 로직
return new MacButton();
}
}
// 사용 예시
ButtonFactory factory = new WindowsButtonFactory();
Button btn = factory.CreateButton();
이렇게 Factory Pattern을 사용하면 객체 생성 로직을 캡슐화하여 유연성을 높일 수 있습니다.
반응형
'프로그래밍 > C#' 카테고리의 다른 글
[C#] 디자인 패턴 - Builder Pattern (0) | 2023.08.15 |
---|---|
[C#] 디자인패턴 - Abstract Factory Pattern (0) | 2023.08.15 |
[C#] 디자인패턴 - Strategy Pattern (0) | 2023.08.15 |
[C#] LINQ 쿼리 구문 연산자와 사용법 (0) | 2023.06.09 |
[C#] LINQ의 종류와 예제 (0) | 2023.06.09 |