Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65225

Klasa okna, dźwięku - singleton czy coś innego? Jaka implementacja?

$
0
0

Witam serdecznie,

piszę pewną aplikację okienkową w C++ oraz SFML i zastanawiam się sposobem implementacji takich klas jak m.in. okno oraz dźwięk.

Klasy te będą używane w wielu innych klasach. Główna pętla mojego programu wygląda tak:

int main()
{
	Flashcards flashcards;
	Window window;
	
	IState* state = new StateMenu(flashcards,window);
	
	while(!state->toExit())
	{
		state->update();
		state->render();
		
		if (state->getStateMenu()) 
			state = new StateMenu(flashcards,window);
		
		else if (state->getStateOptions())
			state = new StateOptions(flashcards,window);
			
		else if (state->getStateManage())
			state = new StateManage(flashcards,window);
		
		else if (state->getStateStart())
			state = new StateStart(flashcards,window);
	}
	return 0;
}

Moja aplikacja jest podzielona na stany. Tak jak widać, za każdym razem muszę przesyłać obiekt flashcards oraz window do konstruktora stanu (a w przyszłości będę musiał przesyłać jeszcze obiekt klasy odpowiedzialnej za dźwięk i może coś jeszcze), poza tym, chcąc np. użyć klasy dźwięku w podklasach klasy State, znowu muszę obiekt przesyłać przez referencję - jest to bardzo niewygodne.

Właśnie tego przesyłania chcę uniknąć - Window, Flashcards oraz Sound będą miały tylko 1 instancję. 

Chciałbym używać tych 3 klas w dowolnej klasie należącej do mojego programu, bez potrzeby przesyłania doń obiektu - czy mam kombinować ze statycznością, stworzyć Singleton lub jeszcze coś innego? 

Co do Singletona, w jaki sposób miałaby wyglądać jego implementacja? W sieci nie znalazłem niczego co przybliżyło by mnie do znalezienia rozwiązania, może Wy znacie jakieś pomocne materiały?

Serdecznie pozdrawiam!


Viewing all articles
Browse latest Browse all 65225

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>