Ocena użytkownikóww: ***** / 6
Nadesłany przez Kamil Dworak, 01 września 2010 22:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Singleton.cs:
/****************************************
* Wzorzec Projektowy Singleton *
* www.algorytm.org *
* Opracowal Dworak Kamil *
*****************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication5
{
class MenedzerPlikow {
private static MenedzerPlikow instancja = null;
private int identyfikator;
private MenedzerPlikow(){
Random random = new Random();
identyfikator = random.Next(10);
}
//-------------------------------------------------------------------------------------------#1 sposob
public static MenedzerPlikow dawajMenedzer(){
if(instancja == null){
instancja = new MenedzerPlikow();
return instancja;
}
Console.WriteLine("Menedzer juz zostal wczesniej utworzony!");
return instancja;
}
public void about(){
Console.WriteLine("Identyfiaktor = " + identyfikator);
}
/*-------------------------------------------------------------------------------------------#2 sposob
// nie inicjujemy tutan nullem, instancja juz od poczatku posiada wartosc
private static readonly MenedzerPlikow instancja = new MenedzerPlikow();
public static MenedzerPlikow dawajMenedzer(){
return instancja;
}
*/
}
class Program
{
static void Main(string[] args)
{
MenedzerPlikow[] tab = new MenedzerPlikow[3];
tab[0] = MenedzerPlikow.dawajMenedzer();
tab[1] = MenedzerPlikow.dawajMenedzer();
tab[2] = MenedzerPlikow.dawajMenedzer();
for(int i = 0; i < 3; i++)
tab[i].about();
Console.ReadLine();
}
}
}