1.3. Pakiety, klasy - 189764/OneArmBandit GitHub Wiki
W programie mamy podział na 3 głowne pakiety:
-
Client, który dzieli się na podpakiety:
-
client.main
* Main - klasa służąca do uruchomienia aplikacji klienta
- client.frames
* AdminManagementFrame - widok okna panelu administratora
* AdminManagementLogic - logika okna panelu administratora
* ChangingPasswordFrame - widok okna zmiany hasła
* ChangingPasswordLogic - logika okna zmiany hasła
* GameFrame - okno głównej gry
* GameLogic - logika okna głównej gry
* LoginFrame - widok okna do logowania
* LoginLogic - logika okna do logowania
* MainUserFrame - okno głównego panelu gracza
* MainUserLogic - logika okna głównego panelu gracza
* RankingFrame - okno wyświetlające tabelę z rankingiem graczy
* RankingLogic - logika okna wyświetlającego tabelę z rankingiem graczy
* RegistrationFrame - widok okna rejestracji
* RegistrationLogic - logika okna rejestracji
- client.networkClient
* DeliverToServer - sluzy do wysyłania pakietów(poleceń) do serwera
* IDataListener - interfejs służący do nasłuchiwania na przychodzące pakiety
* PickUpFromServer - odbieranie danych od serwera
* ServerConnector - realizuje połączenie z serwerem
-
Server, który dzieli się na podpakiety
-
server
* Bandit - reprezentuje maszynę bandyty
* CentralBank - reprezentuje bank centralny (kasyno)
* Main - służy do uruchomienia aplikacji serwera
* Server - odpowiada za uruchamianie głównego wątku, wczytywanie i zapisywanie danych. Przechowuje również mapy wątków i ich przynależności do klienta.
* UserThread - klasa implementująca interfejs Runnable. Jeden wątek jest tworzony dla jednego klienta. Służy ona do właściwej komunikacji między klientem, a serwerem. Przekazuje i odbiera dane z warstwy sieciowej. Każdy otrzymany pakiet powoduje wywołanie konkretnych metod.
- server.exceptions
* NotEnoughMoneyException - wyjątek wywoływany w razie gdy nie ma wystarczającej ilości pieniędzy
* NotEnoughMoneyInBanditException - wyjątek wywoływany w razie gdy nie ma wystarczającej ilości pieniędzy u bandyty
- server.networkServer
* ClientConnector - służy do połączenia z klientem
* ClientSendReceive - odbiera i wysyła pakiety do klienta
-
Shared, który dzieli się na podpakiety
-
shared
* ConnectionConfiguration - reprezentuje konfiguracje połączenia
- shared.data
* User - reprezentuje danego użytkownika
- shared.data.userException
* OutOfRangeStakeException - wyjątek wywoływany w razie gdy stawka jest nieprawidłowa
- shared.exceptions.resourcesLibrary
* BadStructureException - wyjątek wywoływany w razie błędnej struktury plików
* LackOfFileException - wyjątek wywoływany w razie braku pliku
- shared.packet
* Data - pakiet służący do przesyłania danych między serwerem, a klientem
* Instruction - enum zawierające polecenia, które mówią klientowi i serwerowi co mają zrobić z otrzymanymi pakietami
* Package - abstrakcyjna klasa reprezentująca pakiet przesyłany między serwerem, a klientem
- shared.resourcesLibrary
* AbstractLocalization - klasa abstrakcyjna, która odpowiada za reprezentacje danej lokalizacji
* AbstractResourcesLibrary - klasa abstrakcyjna zapewniająca podstawowe metody oraz deklarująca metody abstrakcyjne potrzebne do przechowywania zasobów aplikacji
* Directory - reprezentuje katalog, zawiera wskazanie na listę typu abstrakcyjnego AbstractLocalization. Działanie tej klasy polega na tym, że ma w sobie ona katalog, który ma w sobie katalog itd. Ostatni katalog posiada pliki lub też wiele plików
* Resource - reprezentuje zasób, implementuje ona metody z klasy abstrakcyjnej
* SerializationLibrary - klasa dziedzicząca z klasy abstrakcyjnej AbstractResourcesLibrary. Zapewnia ona zapis obiektów do plików xml, oraz odczyt tych obiektów z plików. Zapewnia implementacje metod abstrakcyjnych