AbstractFactory
Abstract Factory
섹션 제목: “Abstract Factory”패턴 한 줄 설명
섹션 제목: “패턴 한 줄 설명”연관된 객체 묶음을 구체 타입 의존 없이 생성하는 패턴입니다.
Unity에서 쓰는 대표 상황
섹션 제목: “Unity에서 쓰는 대표 상황”- 플랫폼별 서비스 묶음을 통째로 교체할 때
- 테스트용 제품군을 분리할 때
구성 요소 (역할)
섹션 제목: “구성 요소 (역할)”- Abstract Factory
- Concrete Factory
- Abstract Product
Unity 예시 (C#)
섹션 제목: “Unity 예시 (C#)”아래 코드는 위에서 설명한 대표 상황을 Unity 프로젝트 맥락으로 단순화한 예시입니다.
public interface IPlatformServiceFactory{ ILoginService CreateLoginService(); IStoreService CreateStoreService();}
public sealed class MobilePlatformServiceFactory : IPlatformServiceFactory{ public ILoginService CreateLoginService() => new MobileLoginService(); public IStoreService CreateStoreService() => new MobileStoreService();}
public sealed class PcPlatformServiceFactory : IPlatformServiceFactory{ public ILoginService CreateLoginService() => new PcLoginService(); public IStoreService CreateStoreService() => new PcStoreService();}- 객체 생성 책임을 정리해 의존성 관리가 쉬워집니다.
- 환경별/상황별 생성 정책을 유연하게 바꿀 수 있습니다.
주의할 점
섹션 제목: “주의할 점”- 간단한 문제에 과한 생성 추상화를 넣지 않아야 합니다.
- 생성 규칙이 많아질수록 문서와 테스트 동기화가 중요합니다.
동작 다이어그램
섹션 제목: “동작 다이어그램”플랫폼별 제품군을 동일 인터페이스로 생성하는 흐름입니다.