한가지 인스턴스로 저장소로 사용하거나 할 때 사용하는 싱글톤 패턴입니다.
싱글톤 사용 시, 자바에서는 직렬화할 때 문제점이 있었는데, 아마 C#도 같은 문제점이 있을 거라고 예상해봅니다.
스레드 환경에서는 어떤 점유율이 높은 스레드가 후 작업을 해야 하는데 선 작업을 할 지 모르므로 적절한 제어 없이는 사용 하지 않는 것을 추천합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | using System; using System.Collections.Generic; using System.Text; class Program { static void Main(string[] args) { Singleton count1 = Singleton.GetInstances(); Singleton count2 = Singleton.GetInstances(); Console.WriteLine(count1.GetCount()); Console.WriteLine(count2.GetCount()); } } class Singleton { private Singleton singleton = null; private int count = 0; public static Singleton GetInstances() { if(singleton == null) { singleton = new Singleton(); } return singleton; } public int GetCount() { return ++count; } } | cs |
'C# 디자인패턴' 카테고리의 다른 글
05# Factory Method 패턴2 Creational Patterns (0) | 2019.05.23 |
---|---|
04# Factory Method 패턴1 Creational Patterns (0) | 2019.05.23 |
03# 추상 팩토리(Abstract Factory) 패턴 Creational Patterns (0) | 2019.05.22 |
02# Builder 패턴 Creational Patterns (0) | 2019.05.22 |
00# 추상 팩토리(Abstract Factory) 패턴 (0) | 2016.04.18 |