본문 바로가기

unity

디자인 패턴(싱글톤 패턴, 팩토리 패턴)

싱글턴 패턴(Singleton Pattern)

특정 클래스의 인스턴스가 오직 하나임을 보장하고 이 인스턴스에 대한 전역 접근 방법을 제공

 

자주 호출되는 객체를 new로 매번 새로 만드는 것보다 싱글톤으로 만들어 전역 접근이 가능하게 해 접근하면 메모리를 절약할 수 있다. GameManager 같이 게임을 전체적으로 관리하는 스크립트를 싱글톤으로 만들면 편리하다.

 

하지만 단점도 존재하는데 클래스들 사이의 의존성이 높아져 싱글턴 인스턴스가 수정되면 참조하는 다른 클래스들도 수정해야 할 수도 있다. 때문에 유지보수가 힘들어 질수도 있다.

 

간단하게 싱글톤 패턴을 구현해봤다.

이렇게 다른 클래스에서 참조할 수 있다. 

 

팩토리 패턴(Factory Pattern)

팩토리 패턴은 심플 팩토리 패턴, 팩토리 메소드 패턴, 추상 팩토리 패턴이 있다.

- 심플 팩토리 패턴 : 객체생성을 별도의 클래스로 분리하여 구현한다.

- 팩토리 메소드 패턴 : 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될것인지 서브 클래스가 결정하게 구현

- 추상 팩토리 패턴 : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 구현한다.

 

팩토리 패턴으로 여러 종류의 자식 오브젝트를 함수 하나로 쉽게 생성할 수 있다. 유지보수가 쉽다.

https://unity.com/kr/how-to/how-use-factory-pattern-object-creation-runtime

 

런타임에 객체 생성에 팩토리 패턴을 사용하는 방법

Unity 프로젝트에서 일반적인 게임 프로그래밍 디자인 패턴을 구현하면 깔끔하고 체계적이며 가독성 높은 코드베이스를 효율적으로 빌드하고 유지 관리할 수 있습니다.

unity.com

 

팩토리 메소드 패턴을 구현해 보겠다.

Animal 클래스를 상속 받은 Dog 클래스와 Cat 클래스를 만들었다.

 

그리고 동물들을 생성할 CreateAnimal 클래스를 만들고 이를 상속받은 팩토리 매서드 패턴 클래스들을 각각 만들었다.

 

 

조금 더 공부하면서 코드를 다듬어 봐야겠다. 추상 팩토리 패턴은 다음에 구현해봐야겠다.

'unity' 카테고리의 다른 글

유니티 생명주기  (0) 2024.07.28
Dictionary  (0) 2024.07.27
코루틴(Coroutine)  (0) 2024.07.24
Object Pooling  (0) 2024.07.22
Garbage Collection, GC  (0) 2024.07.19