Witam. Muszę napisać niewielką aplikacje na zaliczenie z przystosowaniem jej do modelu mvc. Stworzyłem odpowiednio pakiety model , kontroler , widok oraz pakiet możliwych zdarzeń. W kontrolerze jest odnośnik ( referencja) do klasy głownej klasy modelu i głównej klasy widoku. Umieściłem tutaj również wszystkie Listenery. I teraz tak ; przy pojawieniu się zdarzenia trafia ono ( w postaci obiektu ) do kolejki BlockingQueue. Ponadto mam utworzoną mapę która kojarzy dany typ zdarzenie z reakcją ( tutaj też mam hierarchie dziedziczenia każdy obiekt posiada przedefiniowaną metodę wykonaj() dziedziczoną z abstrakcyjnej klasy Strategia ). Oddzielny wątek sprawdza zawartość kolejki BlockingQueue, jeśli coś jest szuka tego typu w mapie i włącza odpowiednią metodę z klasy dziedziczącej po Strategii. I teraz tak :

  1. Czy takie podejście jest dobre? Czy posiadanie referencji do klas z innych warstw nie jest zaprzeczeniem hermetyzacji?
  2. W której z warstw powinny znaleźć się : kolejka zdarzeń oraz ta mapa kojarząca?
  3. Mam również mieć 2 wątki: czy to podejście (że jeden wątek (głowny) dodaje zdarzenia do kolejki, a drugi w pętli sprawdza czy kolejka nie jest pusta ) jest poprawne ?