Planowanie aplikacji

0

Witam, mam problem z rozplanowaniem swojej aplikacji.

Całość powiedzmy, że bazuje na JFrame (graifczne GUI).

Mam paczkę core w któej umieszczam najważniejsze komponenty aplikacji. W głównej klasie z metodą main wywołuje JFrame guziki itp. Upchnąłem tam również listenery do każdego guzika jako klasy wewnętrzne. Czy jest to dobre rozwiązanie ? Czy może lepiej stworzyć może paczkę Listeners i tam upakować te klasy jako metody zewnętrzne i tylko importować.

Druga sprawa czy dobrze jest robić dla każdego guzika osobny listener czy lepiej spróbować w miarę możliwości stworzyć jeden duży i przekazywać temu listenerowi actionevent odpowiedni który na podstawie tego będzie wykonywał odpowiednie operacje ?

0

Lepiej wiele malych listenerow - 1 duzy wymagal bedzie jednego wyje%$nego switcha / serii ifow, co jest brzydkie i nie OO-style.
Co do listenerow to ja zawsze definiuje listenery w tej samej paczce co klasy ktore ich uzywaja, a tak najczesciej to korzystam z anonimowych klas wewnetrznych.

0

no ja mam właśnie klasy wewnętrzne, ale jak patrze w jakim kierunku idzie aplikacje to dochodzę do wniosków, że główna, core`owa klasa rozrośnie się do wielkich rozmiarów tylko za sprawą pisania listenerów.

0

To moze robi za duzo skoro ma tyle listenerow? Moze rozdziel na panele z guzikami / czymkolwiem, i tam beda konkretne listenery, a pozniej glowna klasa bedzie tylko jak z klockow skladana? Zdaje sobie sprawe ze mozesz wymagac wspolpracy miedzy poszczegolnymi "klockami", no ale mozna je podawac jako parametry do kontruktora innych "klockow"?

0

Zewnętrzna paczka lub klasa do obsługi listenerów, to nie najlepszy pomysł w ogólnym przypadku ponieważ najczęściej jest potrzebne aby kod z listenerów odwoływał się do pól lub metod prywatnych klasy do której komunikaty przywędrowały. Stąd użycie klas wewnętrznych bo te mają dostęp do wszystkich komponentów klasy z założenia. W przeciwnym wypadku będziesz musiał umieścić je we wspólnym pakiecie i niektóre elementy zmienić na dostęp pakietowy/chroniony.

I tak jak napisał poprzednik - dziel i rządź. Okienka w ogóle może nie obchodzić jakie są gdzieś komponenty ponieważ może zajmować się tylko panelami. Panele mogą mieć swoje osobne klasy, chyba że są identyczne (tylko różne dane), to nawet jedną z wieloma instancjami. Listenery grup komponentów powinny być tam gdzie komponenty - zwykle na samym "dnie" w obsłudze panela. Listenery okienka zazwyczaj zajmują się tylko obsługą komunikatów dla całych paneli/podokien. Tak jest na przykład w oknach MDI.

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