1.3. Pakiety, klasy - 189764/OneArmBandit GitHub Wiki

W programie mamy podział na 3 głowne pakiety:

  1. Client, który dzieli się na podpakiety:

  2. client.main

* Main - klasa służąca do uruchomienia aplikacji klienta
  1. 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
  1. 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
  1. Server, który dzieli się na podpakiety

  2. 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.
  1. 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
  1. server.networkServer
* ClientConnector - służy do połączenia z klientem
* ClientSendReceive - odbiera i wysyła pakiety do klienta
  1. Shared, który dzieli się na podpakiety

  2. shared

* ConnectionConfiguration - reprezentuje konfiguracje połączenia
  1. shared.data
* User - reprezentuje danego użytkownika
  1. shared.data.userException
* OutOfRangeStakeException - wyjątek wywoływany w razie gdy stawka jest nieprawidłowa
  1. shared.exceptions.resourcesLibrary
* BadStructureException - wyjątek wywoływany w razie błędnej struktury plików
* LackOfFileException - wyjątek wywoływany w razie braku pliku
  1. 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
  1. 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