1. 추상 팩토리 패턴 (Abstract Factory Pattern)
프로그래밍하다 보면 특정 목적에 따라 사용해야 하는 개체들이 서로 호환성이 있어야 하는 경우가 발생합니다. 목적에 따라 사용해야 하는 개체군들이 있을 때 특정 목적에 맞게 호환성 있는 개체가 무엇인지 조사하고 사용하기 위해서 비용이 발생할 수 있습니다. 이럴 때 추상 팩토리 패턴을 사용하면 효과적으로 비용을 줄일 수 있을 것입니다. 특히, 비슷한 작업을 위해 필요한 개체들 사이에 호환성을 유지해야 하는 여러 종류의 개체군이 있을 때 추상 팩토리 패턴을 사용하면 표준화된 방식에 의해 자신에게 맞는 개체군을 효과적으로 사용할 수 있게 해 줍니다.
이를 위해 추상 팩토리 패턴에서는 서로 호환성 있는 개체들을 생성하는 부분만 담당하는 개체를 제공하는 것입니다. 이처럼 호환성 있는 개체를 생성하는 개체를 팩토리 개체라 부릅니다. 하나의 팩토리 개체를 통해 생성되는 개체들은 상호 호환성을 보장받기 때문에 사용자는 호환성에 대해 고민을 할 필요가 없게 됩니다.
팩토리 형식에서는 호환성 있는 개체를 생성하는 메서드를 표준화된 인터페이스에 약속합니다. 이를 위해서 팩토리 개체를 통해 생성되는 개체들도 일반화합니다. 이로써 사용자는 자신이 사용해야 할 목적과 환경에 맞는 팩토리 개체가 무엇인지만 판단하면 됩니다. 그리고 팩토리 개체를 통해 생성되는 개체 형식도 일반화하였기 때문에 사용 방법은 같아집니다. 결국, 사용자는 사용 목적이나 환경이 바뀌어 다른 개체군을 선택하여도 단순히 팩토리 개체만 교체하면 되기 때문에 유지보수 비용이 줄어들게 됩니다.
2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 1. 추상 팩토리 패턴 (Abstract Factory Pattern) - 구현
'프로그래밍 기술 > Escort GoF의 디자인 패턴 C#' 카테고리의 다른 글
[소프트웨어 설계 패턴 C#] 11. 플라이급 패턴(Flyweight Pattern) (0) | 2016.04.17 |
---|---|
[C#] 퍼사드 패턴(Facade Pattern) (0) | 2016.04.07 |
[C#] 장식자 패턴(Decorator Pattern) (0) | 2016.04.07 |
[C#] 복합체 패턴(Composite Pattern) (0) | 2016.04.07 |
[C#] 가교 패턴(Bridge Pattern) (0) | 2016.04.07 |
[C#] 적응자 패턴(Adapter Pattern) (0) | 2016.04.07 |
[C#] 단일체 패턴(Singleton Pattern) (0) | 2016.04.07 |
[C#] 원형 패턴(Prototype Pattern) (0) | 2016.04.06 |
[C#] 팩토리 메서드 패턴(Factory Method Pattern) (0) | 2016.04.06 |
[C#] 빌더 패턴(Builder Pattern) (0) | 2016.04.06 |