Dla kogoś stosunkowo nowego w ekosystemie Java, istnieje dość lekki sposób na to, jakie struktury, takie jak Qt i Django, robią z ich systemem sygnalizacji/odbiornika, gdzie komponenty mogą powiedzieć "Robię coś ", a inne komponenty radzą sobie z tym w dość luźny sposób?Java - mechanizm sygnału/slotów
Przepraszam z góry, jeśli to pytanie nie przejdzie testu "pojedynczej obiektywnej odpowiedzi".
Edytuj: Aby dodać nieco więcej kontekstu, jest to związane z warstwą aplikacji opartą na bazie danych dla usługi WWW. Niektóre zasoby, gdy są utrwalone, muszą również zapisać rekord kontroli zawierający dodatkowe informacje kontekstowe. W Django zrobię to za pomocą mechanizmu sygnalizacji lub użyję jednej z kilku istniejących bibliotek, które właśnie to robią. W przypadku programu Scala zrobiłem swoje własne, hackowe rzeczy za pomocą funkcji wywołania zwrotnego, ale jest to łatwiejsze dzięki funkcjom pierwszej klasy. Nie mam wątpliwości, że struktury takie jak Swing zapewniają udogodnienia dla tego rodzaju rzeczy, ale jestem (być może w nieuzasadniony sposób) przekonany o dodaniu takiej zależności do tego, co obecnie jest dość aplikacją wanilii (nie, że Django nie jest sam w sobie ogromna zależność od Pythona z wanilii!)
mówisz [modeli zdarzeniami] (http://en.wikibooks.org/wiki/Java_Programming/Event_Handling)? – jefflunt
Na poziomie od średnich do ogromnych komponentów, gdzie masz interfejsy implementujące 2 lub więcej metod, myślę, że Dependency Injection wygrał bitwę o łączenie komponentów. Na małym poziomie (jak na przykład akcja na przycisk GUI) wzorzec Listener jest królem. –
@normalocity: tak, ale nie bezpośrednio związane z programowaniem GUI. – Mikesname