Posiadam napisaną aplikację w jFrame.
Niestety w metodzie actionPerformed mam pełno ifów sterujących akcjami.
Czy jest jakaś szansa, żeby pozbyć się tych ifów z actionPerformed?
Pomysł na szybko: może napisz jakąś metodę, która jako argument będzie przyjmowała source i w zależności od niego będzie wywoływała kolejne. Wtedy w każdym actionPerformed będziesz miał tylko tą jedną taką metodę.
@Shalom by napisał, że nie robimy klas kombajnów i do każdego przycisku podpinamy innego słuchacza.
bogdans napisał(a):
@Shalom by napisał, że nie robimy klas kombajnów i do każdego przycisku podpinamy innego słuchacza.
Otóż to!
@NewUser2k13 zrób osobną klasę implementujacą ActionListenera dla każdego guzika. Jeśli są bardzo małe (jedna linijka kodu) to mogą być anonimowe.
Czyli jak mam 15 ifów to mam stworzyć 15 klas?
Troszkę bez sensu IMHO.
Wydaje ci się. Lepiej mieć w projekcie 100 klas które są bardzo krótkie niż 10 które są wielkimi klockami. Jak masz takie małe klasy to każda potencjalna zmiana jest banalna, bo od razu widać w takiej klasie co ona robi i co się w niej dzieje.
Zostanę przy obecnej postaci - nie mam już czasu na edycję.
BTW
Wie ktoś może jak zrobić Diagram sekwencyjny dla aplikacji GUI (notatnik)?
Jaki dać"jednostki"?
- user
- aplikacja Notepad
- txt area
- jfilechooser
- confirm dialog
Czy te trzy ostatnie odpadają całkowicie?
@NewUser2k13 co to znaczy nie mam czasu na edycję? khe?
Wujek Koziołek poleca następujące refaktoryzacje w Eclipse:
- zaznacz kawałek z ifem > extract method
- zaznacz nową metodę > extract class.
powtórz 15 razy czy ile tam potrzebujesz. Efekt końcowy taki jak zaproponował @Shalom, czyli SRP (http://koziolekweb.pl/2009/02/26/solidne-programowanie-czesc-1-czyli-monogamia/) w praktyce.