TIL 0216 게임개발 숙련 팀 과제 - 5 / 디자인 패턴 특강

강성원·2024년 2월 20일
0

TIL 오늘 배운 것

목록 보기
37/70

디자인 패턴이란

  • 프로그래밍 시 자주 발생하는 문제에 대한 해결 방법

디자인 패턴 장점

  1. 작업시 어떤 문제가 발생하는지 체크하기 용이하다.
  2. 이름을 가지고 있다.
    -> 패턴의 이름을 얘기함으로써 간략한 의사소통이 가능해진다.

디자인 패턴 예시

전략 패턴

인터페이스를 상속받은 Melee AttackStrategyRange AttackStrategy, Magic AttackStrategy의 Attack을 Character에서 호출만 하도록 한다.

싱글톤 패턴

  • 유니티에서는 다른 인스턴스 정보에 접근하기 힘들다.
    인스펙터에서 하나하나 연결해줘야한다.
    -> 싱글톤 패턴 (매니저) -> 전역적으로 접근 가능해서 인스턴스 접근이 용이해진다.

옵저버 패턴

  • 하나의 인스턴스를 여러 인스턴스에서 참조해서 의존관계를 구성
    1:N 관계의 상태를 알고싶다.
    상위 객체 (매니저)가 하위 객체(다른 객체)를 일방향으로 참조하는 것은 좋은 관계가 아니다. 하위의 내용이 변경되거나 하면 상위에서 일일히 다 고쳐줘야함.
    혹은 없는 객체를 참조할 수 있어서 오류 가능성이 있다.
    -> 옵저버 패턴

상태 패턴

  • 객체의 상태가 변경될 떄 행동도 변하게 적용하는 패턴
    FSM에도 쓰이지만 씬 시스템에도 적용 가능![]

팩토리 패턴

  • 부모 클래스에서 객체를 생성하지만 어떤 객체를 생성할지는 자식 클래스에서 결정
    아래처럼 아예 추상 클래스(인터페이스)를 하나 해놓고 상속시키는 방법도 있음.
  • 아래처럼 종류를 묶는 방식을 다르게 할 수도 있다.

디자인 패턴의 맹점

디자인 패턴을 적용하는 것이 어떨 때는 번거롭고 비효율적일 수도 있다.
모든 곳에 써먹을 필요는 없다.
간단한 코드로 처리할 수 있는 곳에도 사용하려는 강박은 버리는 것이 좋다.옵저버 패턴을 꼭 적용하는 것보다
이런 식으로 게임 매니저의 이벤트에 메서드를 등록시켜버려서 관계를 느슨히 할 수도 있다.

profile
개발은삼순이발

0개의 댓글