Unity 내일배움캠프 TIL 1115 | 프로토타입 패턴

cheeseonrose·2023년 11월 16일
0

Unity 내일배움캠프

목록 보기
79/89
post-thumbnail

💡 프로토타입 패턴

🍖 정의

  • 프로토타입 : 복제를 지원하는 객체
  • 실제로 복제되는 객체들에 복제 프로세스를 위임하는 패턴
    • 객체의 복제본을 생성하려면 객체의 클래스를 알아야 하므로, 해당 클래스에 의존하게 되는 문제 해결
  • 복제를 지원하는 모든 객체에 대한 공통 인터페이스를 선언
    -> 코드를 객체의 클래스에 결합하지 않고도 해당 객체를 복제 가능



🍴 clone 메서드

  • 일반적으로 인터페이스에는 단일 clone 메서드만 포함
  • 현재 클래스의 객체를 만든 후 이전 객체의 모든 필드 값을 새 객체로 전달
    • 대부분의 프로그래밍 언어는 객체들이 같은 클래스에 속한 다른 객체의 비공개 필드에 접근할 수 있도록 하기 때문에 비공개 필드 복사도 가능



🍗 적용

  • 복사해야 하는 객체들의 구상 클래스들에 코드가 의존하면 안 될 때 사용
  • 프로토타입 패턴은 클라이언트 코드에 복제를 지원하는 모든 객체와 작업할 수 있도록 일반 인터페이스를 제공
    -> 클라이언트 코드가 복제하는 객체들의 구상 클래스에서 클라이언트 코드를 독립시킴
  • 객체를 초기화하는 방식만 다른 자식 클래스들의 수를 줄이고 싶을 때 사용
    • 일부 설정과 일치하는 자식 클래스를 인스턴스화하는 대신 적절한 프로토타입을 찾아 복제



🍽 사용 이유

  • 비슷한 오브젝트를 지속적으로 생성해야 할 때 유용
    • 새 오브젝트를 계속 new로 생성하는 것은 부담스러운 일
  • 기존 오브젝트의 복사본을 만들어서 데이터를 수정하는 방식으로 생성
  • 동적 클래스 확장
    • 세부 클래스를 미리 명세하지 않고, 런타임 때 원형을 복제하여 복사본을 수정함으로써 동적으로 오브젝트 생성


🥩 Unity와 프로토타입 패턴

  • 유니티의 프리팹은 프로토타입 패턴을 따르고 있다.
    • 원형인 프리팹을 복제하여 오브젝트로 만들기 때문



출처 - 프로토타입 패턴
출처 - 유니티 프로그래밍 패턴 (4) Prototype
출처 - 원형 패턴(Prototype Pattern)



끗!

0개의 댓글