[Design Pattern] Singleton Pattern (싱글톤 패턴)
안녕하세요. 오늘 하루종일 싱글톤 패턴 알아보다 이렇게 포스팅 올리네요.
물론, 코드는 제가 한것도 있지만 외국 사이트에 있는 코드를 약간 응용해서 했고요.
싱글톤을 배울 때는 C++로만 사용하는 방법만 배웠고 Winform에서 할려니 좀 해맸어요..ㅎㅎ
머..배운지 벌써 2년이 넘어가서 그런것도 있지만..
우선은 Winform 2개를 한개의 프로젝트안에서 생성을 합니다.
그냥 생성만 하시면 됩니다.
< 그림 1 >
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2.Instance.Show(); } } |
메인으로 쓰는 Winform에서는 버튼을 클릭 시 다른 Winform이 쓰게 이벤트만 생성하고
다른 폼의 Instance를 가지고 와서 Show()를 해 줍니다.
< 그림 2 >
namespace WindowsFormsApplication1 { public partial class Form2 : Form { private static Form2 inst; public static Form2 Instance { get { if (inst == null || inst.IsDisposed) { inst = new Form2(); } return inst; } }
public Form2() { inst = this; InitializeComponent();
} } } |
2번째 Winform에다가는 싱글톤을 바로 적용시키면 되고요.
저의 설명이 미흡하기 때문에 설명은 패스 하겠습니다.
단, 설명은 링크로 걸어 놓을게요^^
< 그림 3 >
< 그림 4 >
위에 그림 3,4 처럼 버튼이 누르면 1개의 윈도우 창만 만들어지고 다른 창이 생성이 안됩니다.
아 물론 Singleton을 적용시키지 않으면 많은 창을 생성하겠죠?
감사합니다
'프로그래밍 > Language C#' 카테고리의 다른 글
[C#] enum을 쓰는 이유... (0) | 2014.06.17 |
---|---|
Modbus RTU, CRC (0) | 2014.01.21 |
[C#] 통합 개발 환경 [integrated development environment] (0) | 2013.12.23 |
[C#] 엔터키 이벤트(KeyEvent) (0) | 2013.11.22 |
[C#] System.Security.SecurityException Window Serveice 등록시 Install Error (0) | 2013.07.23 |
댓글
이 글 공유하기
다른 글
-
[C#] enum을 쓰는 이유...
[C#] enum을 쓰는 이유...
2014.06.17 -
Modbus RTU, CRC
Modbus RTU, CRC
2014.01.21 -
[C#] 통합 개발 환경 [integrated development environment]
[C#] 통합 개발 환경 [integrated development environment]
2013.12.23 -
[C#] 엔터키 이벤트(KeyEvent)
[C#] 엔터키 이벤트(KeyEvent)
2013.11.22