본문 바로가기
알아두면 좋은것들

02.15 (TIL)

by 오랑이귀엽다 2024. 2. 15.

인터페이스와 추상클래스의 차이

  • 인터페이스(Interface): 모든 메소드가 추상 메소드(구현부가 없는 메소드)로만 이루어져 있으며, 다중 상속이 가능합니다. 인터페이스는 특정 기능을 구현하기 위한 메소드의 시그니처(형태)만을 정의합니다. 클래스가 인터페이스를 구현(implement)할 때는 인터페이스에 정의된 모든 메소드를 구현해야 합니다.
  • 추상클래스(Abstract Class): 하나 이상의 추상 메소드를 포함할 수 있으며, 구체적인 메소드(구현부가 있는 메소드)도 포함할 수 있습니다. 추상 클래스는 다른 클래스가 상속(extend)할 수 있으며, 추상 클래스를 상속하는 자식 클래스는 부모 클래스의 추상 메소드를 모두 구현해야 합니다. 추상 클래스를 사용하면 기본적인 구현을 제공하면서도 일부 메소드는 자식 클래스에서 구현하도록 강제할 수 있습니다.
  • 차이점: 인터페이스는 구현부 없이 메소드의 시그니처만 정의하며 다중 구현이 가능, 반면 추상클래스는 일부 구현이 가능하고 메소드에 상태(필드)를 가질 수 있으나, 다중 상속은 지원하지 않습니다.

디자인 패턴 사용 이유

  • 디자인 패턴은 소프트웨어 설계 시 발생할 수 있는 문제들을 해결하기 위한 재사용 가능한 솔루션입니다. 코드의 유지보수성, 확장성, 재사용성을 높이고, 개발 과정에서의 복잡성을 관리하기 위해 사용됩니다. 디자인 패턴은 일반적인 문제에 대한 베스트 프랙티스로, 특정 문제를 해결하는 표준적인 방법을 제공합니다.

프로젝트에 디자인 패턴 적용

  • 예를 들어, 싱글톤(Singleton) 패턴을 사용하여 애플리케이션 내에 단 하나의 인스턴스만을 유지하고 싶은 경우(예: 로그 관리자, 데이터베이스 연결 관리)나, 옵저버(Observer) 패턴을 이용하여 객체의 상태 변화를 관찰하고 이에 반응하는 기능(예: 이벤트 핸들링 시스템)을 구현할 때 사용합니다. 패턴 선택의 주된 이유는 해당 패턴이 해결하고자 하는 문제가 프로젝트에서 발생한 문제와 일치하기 때문입니다.

Unity에서 경험할 수 있는 대표적인 디자인 패턴

  • Unity 개발 환경에서는 여러 디자인 패턴을 경험할 수 있습니다. 예를 들어:
    • 싱글톤(Singleton) 패턴: 게임 내에서 하나의 인스턴스만을 유지해야 하는 게임 매니저나 사운드 매니저 구현에 사용됩니다.
    • 옵저버(Observer) 패턴: 이벤트 시스템을 구현할 때 사용되며, 예를 들어 플레이어의 체력 변화를 다른 시스템이 감지하도록 할 때 활용됩니다.
    • 커맨드(Command) 패턴: 게임 내에서 실행할 수 있는 액션(예: 공격, 점프 등)을 캡슐화하여, 실행 시점을 변경하거나 로그를 기록하는 등의 기능을 구현할 때 사용됩니다.
    • 상태(State) 패턴: 캐릭터나 게임 오브젝트의 상태(예: 대기, 이동, 공격 등) 관리에 사용되어, 각 상태를 클래스로 분리하여 관리의 복잡성을 줄일 수 있습니다.

'알아두면 좋은것들' 카테고리의 다른 글

02.23 (TIL)  (0) 2024.02.23
02.19 (TIL)  (0) 2024.02.19
02.13 (TIL)  (0) 2024.02.13
02.06 (TIL)  (1) 2024.02.06
02.05 (TIL)  (0) 2024.02.05