Budowanie relacji klas aplikacji

0

Witam

Miałem spory problem i bałagan z relacjami klas w aplikacji, che ją reorganizować. Prosty program, w którym klient może kontrolować sój budżet, poprzez dodawanie wpływów i wydatków. Najbardziej interesują mnie klasy Budget, History, HistoryWindow, Income, IncomeWindow, Spending, SpendingWindow, LoginWindow, RegisterWindow, SettingWindow, State, Statistics.
Działa to tak, że klient rejestruje się do systemu(klasa Register), póżniej poprzez LoginWindow sprawdzane w bazie danych są login i hasło i id, wchodzi i jest w klasie Budget. Stąd może dodawać wpływy i wydatki, sprawdzać historie, i statystyki. Jest też licznik stanu budżetu (State). W menu jest też SettingWindow gdzie będzie możńa zmienić język aplikacji.
Pierwsze pytanie mam o to jaki sposób jest poprawy. Czy tworzyć 2 klasy np Income(biznesowa) i IncomeWindow(GUI) czy je połączyć w jedną, która będzie jednocześnie obsługiwała GUI i wykonywała polecenia warstwy biznesowej?
Drugie w jaki sposób połączyć te klasy... Napotkałem taki problem:
-Budget pobiera informacje o stanie konta z State, ponieważ musi je wyświetlić, a State musi wiedzieć o jakiego klienta chodzi, więc również musi mieć informacje z Budget o ID klienta z bazy danych. Budget ma te informacje z LoginWindow. Wtedy w Budget mamy instację State, a w State instancję Budget. Ale co z Income i Spendings? Jeśli dodaje wpływy i wydatki to też w tych klasach muszę stworzyć instancję State, że móc operować na jej metodach, żeby zmienić stan budżetu.
W załączniku dołączyłem relacje w UML, które mam na chwile obecną.

0

pomoże ktoś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1