싱글톤 패턴(Singleton Pattern)이란?
싱글톤 패턴(Singleton Pattern)의 개념은 아주 간단하다. 전체 프로그램에서 하나의 인스턴스만 유지되는 형식을 뜻한다.
장점
- 프로젝트 어디에서나 해당 인스턴스에 접근할 수 있다.
- 한 번만 인스턴스가 생성되기 때문에 메모리를 절약할 수 있다.
단점
- 하나의 인스턴스이기 때문에 하나의 기능이 다른 기능에 영향을 미치지 않는지 늘 고민해야한다.
( OCP에 어긋날 수 있음.)
예제
싱글톤 패턴을 사용하는 방법은 아래와 같다.
- static 직접 선언
- Framework에서 제공하는 기능 이용
static 직접 선언
클래스 정의
싱글톤으로 생성할 클래스 내부에 정적 변수를 생성하여 유일하게 생성한 인스턴스를 반환한다.
public class User
{
private static User _user;
public string Name { get; set; }
int Age { get; set; }
private User()
{
_user = new User();
}
public static User GetInstance() => _user;
}
사용
User 인스턴스를 사용하기 위해선 User내의 정적 변수를 가져와 사용한다.
var user = User.GetInstance();
Framework에서 제공하는 기능 이용
필자의 경우는 .NET Prism을 주로 사용한다. Prism에서는 Container를 제공해주고 Container에 ContainerControlledLifetimeManager를 사용하여 객체 유형을 등록하면 싱글톤 패턴을 편하게 사용할 수 있도록 기능을 제공해준다.
Inversion Of Control Container, IUnityContainer
개요 Inversion Of Control Container(이하 IoC Container)를 활용하여 개발을 하면 굉장히 편리하다. Container에서 객체의 생성과 의존성 등을 관리하기 때문에 정작 개발을 하는 당사자는 각 객체에 대한 신
jaywapp.tistory.com
'Software Develop > Design Pattern' 카테고리의 다른 글
스테이트 패턴 (State Pattern) (0) | 2023.01.16 |
---|---|
빌더 패턴 (Builder Pattern) (0) | 2023.01.13 |
파사드 패턴 (Facade Pattern) (0) | 2023.01.12 |
Inversion Of Control Container, IUnityContainer (0) | 2022.02.24 |
MVVM 패턴 (Model - View - ViewModel) (0) | 2022.02.24 |