![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 5 Dołączył: 10.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Napisałem sobie klasę game
No i oczywiście plik z formularzem.
Moje pytanie brzmi, czy da to się łatwiej zrobić? (bez wykorzystywania sesji, raz ustawić obiekt i potem cały czas z niego korzystać) Po co używać wzorca singleton. Przecież podczas pisania kodu, osoba, która go pisze wie czy utworzyła już dany obiekt czy nie... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Nie potrzebujesz korzystać z własnej klasy obsługi sesji. Domyślny mechanizm wbudowany w PHP w pełni tutaj wystarczy.
2. Nie ma potrzeby ręcznie (de)serializować obiektów "wrzucanych do sesji". Cała tablica $_SESSION i tak jest (de)serializowana przy zapisie/odczycie z pliku/pamięci. 3. Nie ma tutaj ani jednego powodu dla którego miałbyś korzystać z singletona, nie powinieneś tego robić. Przykład "praktycznego wykorzystania singletona" podany przez @CuteOne to jeden z paskudniejszych potworków jakie można umieścić w swoim kodzie - takiego czegoś również nie powinieneś praktykować. (IMG:style_emoticons/default/wink.gif) 4. Odpowiadając na Twoje pytanie: musisz ręcznie umieścić obiekt w sesji i ręcznie go stamtąd odczytać. Nie mniej jednak możesz troszkę uprościć swój kod: 5. Właściwość Game::try powinna nazywać się Game::tries, a komunikat o wygranej brzmieć: You needed n tries.. 6. Metoda Game::type nie powinna raczej wyświetlać komunikatów tylko zwracać informację o wyniku swojego działania. Tutaj najlogiczniejszym wydaje się zwrócenie liczby mniejszej od zera w przypadku podania za małej liczby, większej od zera w przypadku za dużej i w końcu zera w przypadku trafienia. Dzięki temu Twoja klasa będzie bardziej uniwersalna - będziesz mógł ją wykorzystać w dowolny sposób, nie tylko w tym jednym konkretnym formularzu. Ten post edytował Crozin 24.02.2013, 13:00:38 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 16:54 |