Cześć.
Mam takie pytanie - czy singleton jest czasami konieczny?
Mam sytuację, iż pisze aplikację, gdzie loguję się do bazy danych na samym starcie i owe połączenie powinno trwać przez cały okres trwania programu.
W tym przypadku wiele osób radzi mi zastosować singletona i owszem jest to rozwiązanie bardzo proste... aż za proste.
Zastosowanie "nowoczesnego" programowania strukturalnego mnie nie zadowala raczej, aczkolwiek nie wiem, czy jest sens tworzyć to inaczej. Ja wykonałem to w ten sposób, iż w pewnym miejscu tworzę odpowiedni obiekt realizujący połączenie / rozłączenie i wszelkie zapytania do bazy danych, a następnie ten obiekt przekazuję do innych klas jeśli jest taka potrzeba (zastosowałem asocjację).
W ten jednak sposób w kilku klasach mam np:
NazwaKlasy NazwaObiektu = ReferencjaDoObiektuTejSamejKlasy.
i wtedy te wszystkie zmienne operują na jednym obiekcie, dzięki czemu program napisany jest obiektowo.
Z drugiej jednak strony gdyby zastosować tutaj wzorzec singleton, to aplikacja nie bawiłaby się w przekazywanie obiektów, jednak używałaby metod statycznych, co według mnie jest niezbyt eleganckie.
Co Wy byście radzili w podobnej sytuacji?