싱글톤 패턴의 경우, 이 글에 굳이 예시를 적지 않아도 될 정도로 이미 많은 자료들이 나와있다.
(거의 다른 패턴들보다도 비교적 참고자료가 많은 게 아닐까라는 생각이 든다)
패턴에 대한 설명은
쉽게 보여주는 예제를 원한다면
추가적인 사용 방법은
보통은 게임 매니저나 특정 기능에 대한 부분 전체를 관리하는 매니저 클래스를 만드는 경우에 흔히 사용되는 패턴이다.
개발자들이 많이 사용하다보니 사용하는 방법도 여러가지고, 쉽게 사용하다보니 장단점들을 놓치고 그냥 사용하는 경우도 많다.
단 하나의 클래스 인스턴스로 쉽고 빠르게 접근이 가능하다는 장점도 분명히 있지만
하나의 싱글톤에 많은 기능들과 데이터들을 넣었을 경우,
클래스들과 싱글톤의 클래스 인스턴스와의 의존도가 복잡해지는 경우,
싱글톤 남발로 인한 메모리의 비효율적인 점유에 대한 문제 등
참고자료에 모두 나와있는 내용이지만 위와 같은 경우에 발생하는 문제들도 있어서 단점 또한 분명히 존재한다.
사용방법도 단순하게, 예외처리, 제네릭 방식 등 여러 방법들이 존재한다.
싱글톤 패턴이 적용될만한 기능들은 보통 게임 매니저 외에도 데이터 관리라든지, 로컬라이징과 인게임의 중요한 메인 로직 등과 같이 여러 기능들이 있을 것이다.
(물론 이곳저곳 필요하다고 남발하면 나중에 프로젝트 유지보수가 힘들 수 있으니 충분히 고민을 거쳐서 적용하도록 하자)
패턴에 확실히 옳다고 할 정도로 정답이 있는 것도 아니고 자료는 충분히 널려있으니 여러 자료들을 참고해서 싱글톤 패턴의 장단점을 파악하고 사용방법에 따라 좀 더 용이할 것 같은 방향으로 구현하면 좋을 것 같다.
'C# > 디자인 패턴' 카테고리의 다른 글
[C# / Unity] 디자인 패턴 - 추상 팩토리 (0) | 2021.04.18 |
---|---|
[C# / Unity] 디자인 패턴 - 팩토리 메서드 (0) | 2021.04.11 |
[C# / Unity] 디자인 패턴 - 심플 팩토리 (0) | 2021.04.04 |
[C# / Unity] 디자인 패턴이란? (0) | 2021.03.28 |
댓글