07. Patterns
이 문서의 목표
Framework가 제공하는 재사용 가능한 설계 패턴 목록과 사용 시점을 이해한다.
왜 필요한가
State/Pool/Command 같은 패턴을 프로젝트마다 새로 구현하면 품질이 들쭉날쭉해진다. Patterns 계층은 검증된 구현을 공유한다.
언제 사용하는가
- 조건 검증 로직 ->
Specification(신규 Rule/Condition 시스템 만들지 않는다) - 상태 전이 ->
StateMachine - 객체 재사용 ->
Pool - 되돌릴 수 있는 동작 ->
Command - 알고리즘 교체 가능성 ->
Strategy
프로젝트에서 어떤 역할인가
Systems가 내부적으로 사용하거나, Game Layer가 직접 사용하는 범용 구조다. System 간 조합 로직도 여기 패턴(Mediator, Pipeline)을 활용해 Game/Integration Layer에서 구성한다.
코드 예제
var spec = new IsAliveSpecification().And(new HasTargetSpecification());
if (spec.IsSatisfiedBy(entity)) { /* ... */ }
관련 Sample
Samples/Patterns/PatternsSample.cs
Best Practice
동일 책임의 Validation 시스템과 Specification 시스템을 동시에 운영하지 않는다 (Rules #11).
자주 하는 실수
- Specification이 있는데 별도
Rule/Condition클래스를 새로 만듦 - Interface+구현체 쌍을 교체 가능성/테스트 필요성 없이 남발
실습 과제
Specification두 개를And로 조합해본다.- 간단한 상태(Idle/Move/Attack)를
StateMachine으로 구성해본다.
이전 문서 / 다음 문서
이전: 06_Core.md 다음: 08_AssetSystem.md
관련 API
MCP_Index.md Patterns 섹션 전체