디자인 패턴 - I

그림자왕국·2021년 12월 8일
1

Design Patterns

목록 보기
1/5

싱글톤 패턴

싱글톤 패턴은 프로세스에서 오브젝트를 만들 때 단 하나의 오브젝트만 만들게 강제하는 디자인 패턴이다. (인스턴스가 1개만 생성된다)

싱글톤 패턴을 사용하는 이유는 해당 오브젝트가 많은 리소스와 중요한 역할을 해서 하나만 있으면 되거나, 해당 클래스가 외부 네트워크가 1:1로 연결되야할 때 주로 사용된다.

싱글톤 패턴은 static 멤버를 사용하기에 하나의 메모리 공간을 점유하며, 프로세스 어디서나 객체를 선언하여 static 멤버에 접근할 수 있다.

싱글톤은 처음 사용될 때 초기화되므로, 게임 내에서 전혀 사용되지 않는다면 아예 초기화되지 않는다. (게으른 초기화)

프로토타입 패턴

오브젝트를 복사할 때 레퍼런스만 복사되는 얕은 복사를 방지하기 위해 깊은 복사(deep-copy)를 지원하는 디자인 패턴이다.

베이스가 되는 오브젝트를 프로토타입이라고 부르며 이를 deep-copy 하여 오브젝트를 만들어가는 디자인 패턴이라고 이해하면 된다.

clone 함수는 현재 오브젝트를 deep-copy하여 새로 할당하는 함수다. 이를 통해 기본 값으로 생성된 오브젝트를 깊게 복사하여 (이 때 black_cat 객체가 프로토타입이다.) 새로 생성 된 인스턴스의 멤버를 수정하여 오브젝트를 완성시키는 디자인 패턴이라고 볼 수 있다.

프로토타입 패턴은 클래스 뿐만 아니라 상태도 같이 복제된다는 점이다. 즉, 원형으로 사용할 객체를 잘 설정하면, 다양한 속성을 가진 객체를 얼마든지 복제할 수 있다.

profile
언리얼 엔진 매니아입니다.

0개의 댓글