Program obiektowy - struktura

0

Witam,
piszę właśnie mój pierwszy program obiektowy - jako forma nauki javy. Na początek mało wymagające zadanie - program do nauki słówek. Chciałbym go z biegiem nauki udoskonalać o nowe funkcje (przypominanie o powtórce, interfejs graficzny itd.). Zastanawiam się jaka byłaby najbardziej optymalna struktura klas dla takiego programu - od samego początku warto wyrabiać sobie dobre nawyki :D Myślałem nad takim podziałem:

  • Klasa słowo
  • funkcja dodawania słowa
  • funkcja losowania słowa do wyświetlenie
  • funkcja oznaczania słowa jako znane/nieznane i wywołanie funkcji z klasy powtórki
  • Klasa powtórki
  • funkcja dodawania słowa do powtórki
  • funkcja usunięcia słowa z powtórki
  • Klasa zapis
  • funkcja zapisująca słówka do pliku "slowka.txt"
  • funkcja zapisująca słówka do pliku "powtorka.txt"
  • Klasa wczytywanie
  • funkcja wczytująca słowa z pliku "slowka.txt"
  • funkcja wczytująca słowa z pliku "powtorka.txt"
  • Klasa main
    -funkcja main

Taka organizacja klas dla tego programu jest w pełni zgodna dla założeń programowania obiektowego czy jakoś inaczej powinienem to rozpisać?
Zastanawiam się też nad uproszczeniem klasy zapis i wczytywanie - dać jedną funkcję z argumentem przekazującym nazwę pliku.

Dziękuję za wszelkie wskazówki i pozdrawiam :)

0

Możesz dokładniej napisać co masz na myśli z tą flagą przy zapisie? Jeszcze tego zagadnienia nie miałem. Klasa ListaSłówBean - masz na myśli przechowywanie podanych słów w tablicy i dodawanie (po przez klasę słowo) nowego do tablicy?

0

Nie rozumiem sensu dodawania w klasie Słowo takich metod jak dodaj(), czy losuj().
Słowo powinno tworzyć obiekty zawierające pojedyncze słowa wraz z ich metodami i właściwościami, "dodawanie" to po prostu utworzenie obiektu (wywołanie konstruktora), losować nie ma czego, pozostaje to oznaczanie słówek jako znane / nieznane (to ma sens), ale o co chodzi z tym wywołaniem funkcji z klasy Powtórka to pojęcia nie mam :D
Losowanie powinno być w klasie Powtórka jak już.
Brakuje też jakiejś klasy zarządzającej obiektami klasy Słowo (np. ich generowaniem), nazwijmy ją roboczo ManagerSłów.
Zapis i wczytywanie powinny być wg mnie metodami klas Powtórka i ManagerSłów.

PS
Na pewno jest lepsze rozwiązanie, sam nie mam zbyt dużego doświadczenia, jednak to co napisałem wydaje mi się dużo bardziej sensowne niż pierwotny zamysł.

0

Funkcja dodaj() miała dodawać słowo to tablicy słów, a losuj() zwracać jedno wylosowane słówko, które byłoby wyświetlane - tutaj de facto losujemy index. Zapis i wczytywanie dałbym mimo wszystko jako osobne klasy - programy, które analizowałem wszelki I/O miały w ten sposób.

Dziękuję wszystkim za pomoc! :) Może również jacyś bardziej doświadczeni użytkownicy przedstawią swoją wizję?

0

Ale klasa Słowo jak sama nazwa wskazuje powinna opisywać JEDNO słowo, a nie listę słów.

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