디자인 패턴
디자인 패턴은 게임 개발과 소프트웨어 엔지니어링에서
코드의 유지보수성, 확장성 및 재사용성을 개선하기 위한 중요한 전략임과 동시에,
특정 문제에 대한 해결책을 제공하는 잘 정의된 해결 방식이다.
C#과 Unity에서 자주 사용되는 디자인 패턴
<Singleton 패턴>
특정 클래스의 인스턴스가 하나만 생성되어 전역적으로 접근 가능하다.
Unity 게임 개발에서 매니저 클래스나 설정 데이터 같은 전역 인스턴스를 관리하는 데 자주 사용된다.
<Observer 패턴>
객체들 사이의 의존성을 최소화하면서 한 객체의 상태 변화를 관찰하고 다른 객체들이 반응할 수 있도록 하는 패턴이다. Unity에서 이벤트와 메시지 시스템을 구현할 때 주로 사용된다.
<Factory Method 패턴>
객체 생성을 서브클래스에 위임하여 슈퍼클래스에서는 어떤 클래스의 인스턴스를 생성할지 알 수 없게 하는 패턴이다.
Unity에서 다양한 타입의 적, 아이템 등을 생성할 때 사용된다.
<Strategy 패턴>
알고리즘의 집합을 정의하고 각 알고리즘을 서로 교체 가능하도록 만듦으로써 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있게 하는 패턴입니다.
다양한 캐릭터의 행동 패턴을 구현할 때 주로 사용된다.
<Command 패턴>
요청 자체를 캡슐화하여 파라미터를 사용해 사용자 정의 요청에 따른 여러 액션을 지정하고
큐에 저장하거나 로그를 기록하거나 작업을 취소할 수 있게 한다.
유저 인터페이스 버튼 작업이나 입력 시스템 구현에 사용된다.
<State 패턴>
객체의 내부 상태가 변경될 때 객체의 행동을 변경할 수 있게 해주는 패턴입니다.
게임 캐릭터의 상태(예: 걷기, 달리기, 점프) 관리에 주로 사용된다.
<Decorator 패턴>
객체에 동적으로 새로운 책임을 추가할 수 있는 패턴으로, 서브클래싱 대신 유연한 확장 방법을 제공한다.
Unity에서 게임 오브젝트에 새로운 능력이나 행동을 추가할 때 사용된다.
<Composite 패턴>
개별 객체와 객체의 그룹을 동일하게 취급할 수 있게 해주는 구조적 패턴이다.
Unity의 변환 계층구조(예: 부모-자식 관계)를 관리하는 데 유용하다.
'산대특 > 게임 알고리즘' 카테고리의 다른 글
직렬화(Serialization)와 역직렬화(Deserialization) (0) | 2024.02.05 |
---|---|
동기(Synchronous)와 비동기(Asynchronous) (0) | 2024.02.05 |
싱글톤 패턴 (0) | 2024.02.05 |
스레드(Thread)와 코루틴(Coroutine) (0) | 2024.02.03 |
프로세스(Process)와 스레드(Thread) (0) | 2024.02.02 |