Witam,
napisałem aplikację konsolową "Kasa w sklepie". Osiągnąłem żądaną funkcjonalność jednak uważam, że kod jest mało elegancki. W pracy tworze głownie malutkie programy do raportów i praktycznie tworze 1-2 klasy w projekcie dlatego pytam o radę jak to powinno wyglądać w rozbudowanym profesjonalnym projekcie.
W aplikacji stworzyłem klasy: Kasa, Menu i Produkt.
-
Kasa ma sporo metod: Wyświetl, Dodaj/Usuń produkt, Wczytaj liste, Wyswietl liste, Zapisz liste, Wyczysc liste, Sumuj produkty.
-
Menu wyświetla menu głowne programu i podmenu dla poszczególnych opcji
-
Produkt nie ma żadnej metody poza konstruktorem, który uzupełnia pola: cena, nazwa, rodzaj.
Obiekt klasy Kasa tworze na początku programu i kontroluje program, do klasy produkt i menu przekazuje go przez referencję.
Czy powinienem utworzyć jeszcze kilka klas, które przejmą metody Kasy a Kasa będzie je tylko wywoływać? np:
-
Stworzyć Klasę FileReader, która wczyta, zapisze, usunie listę
-
Klasa kalkulator, która obliczy sumę
-
Klasa operującą na produktach: dodawania, usuwanie, przechowywanie listy w konterze
Kolejna kwestia, że klasy nie dziedziczą po sobie. Powinienem stworzyć klasę Kasa z podstawowymi metodami a później dziedziczącą po niej KaseSklep która ma dodatkowe metody?
Po optymalizacji wrzucę kod do oceny - jeżeli ktoś będzie miał ochotę spojrzeć i udzielić rad będę bardzo wdzięczny.