معرفی یک الگوی ساده از ژنریک سینگلتون
کد:
<font color="#0000FF">class</font> GenericSingleton<T> where T :
<font color="#0000FF">class</font>, <font color="#0000FF">new</font>
<font color="#000000">(</font><font color="#000000">)</font>
<font color="#000000">{</font>
<font color="#0000FF">private</font> <font color="#0000FF">
static</font> T instance;
<font color="#0000FF">public</font> <font color="#0000FF">static</font>
T GetInstance<font color="#000000">(</font><font color="#000000">)</font>
<font color="#000000">{</font>
<font color="#0000FF">lock</font> <font color="#000000"
>(</font><font color="#0000FF">typeof</font><font color="#000000">
(</font>T<font color="#000000">)</font><font color="#000000">)</font>
<font color="#000000">{</font>
<font color="#0000FF">if</font> <font color="#000000">(</font>instance ==
<font color="#0000FF">null</font><font color="#000000">)</font>
<font color="#000000">{</font>
instance = <font color="#0000FF">new</font> T<font color="#000000">
(</font><font color="#000000">)</font>;
<font color="#000000">}</font>
<font color="#0000FF">return</font> instance;
<font color="#000000">}</font>
<font color="#000000">}</font>
<font color="#000000">}</font>
مثال از نحوه ی استفاده :
کد:
AutoFactory autoF = GenericSingleton<AutoFactory>.<font color="#2B91AF">
GetInstance</font><font color="#000000">(</font><font color="#000000">)</font>;