Hej przeczytałam kilka tutoriali i mam kilka pytań odnośnie MVC
-
W modelu siedzi klasa Student i StudentsBase, operuję głównie na StudentsBase , naciskam sobie w widoku "Sort Students" - sortowaniem powinien zająć się kontroler i odpowiednio uaktualnić model czy model powinien udostępniać prostą metodę do sortowania (dla kontrolera) np.
students.Sort()
? Bo np. gdy naciskam w widoku "Show Smokers" i chcę tylko wyświetlić sobie palących studentów (dane w bazie nie ulegną zmianie) to domyślam się, że to już zadanie dla kontrolera, który pobiera sobie dane z modelu i je odpowiednio przetwarza tak? (a potem to co przetworzył przekazuje do widoku) -
Obecnie w main mam coś takiego:
Model model = new Model();
View view = new View(model);
Controller controller = new Controller(model,view);
przez to mam tylko jedną klasę w kontrolerze do "komunikacji" z modelem o nazwie Model
. Będę musiała nawrzucać tam sporo metod - tak się robi czy można stworzyć sobie więcej klas i je przekazywać do kontrolera np. Controller controller = new Controller(groupsModel,studentsModel,view);
itd... ?
- jest klasa
StudentsDatabase
- jak powinno wyglądać z perspektywy kontrolera dodanie nowego studenta do bazy studentów tj. modelu?
students.add(String name, int age, boolean isDrunk);
(wtedy tych parametrów może być dużo)
czy
Student s = new Student(String name, int age);
s.learning(String learningWhat);
s.sleeping();
students.add(s);
tylko wtedy będę musiała zrobić klasę Student w modelu publiczną i dodać w kontrolerze import model.Student;
--no właśnie tutaj mam kolejne pytanie:
4. Obecnie w pakiecie model
na klasę Model (która jest jedyną z tego pakietu używaną zewnętrznie) składa mi się kilka mniejszych klas. Żeby je ukryć nie daję żadnego modyfikatora tj;
"default – pozwala na dostęp do danego elementu tylko klasom z danego pakietu (nie istnieje słowo w Javie określające ten rodzaj dostępu, jeżeli chcemy go użyć to po prostu nie podajemy żadnego modyfikatora)"
czy to jest słuszna praktyka?
PS jeżeli znacie jakieś ciekawe materiały o MVC z przykładami w Javie (jak to się prawidłowo robi) to proszę o link :p .
znalazłam coś takiego: http://www.know-how.info.pl/programowanie/java/wzorce-projektowe/klasyczny-mvc/
Pozdrawiam