Java: interfaces och undvika beroenden
Hejsan!
Jag har byggt ihop ett Chatt program GUI bestående av ett gäng paneler, varje panel kan innehålla flera objekt.
Lite kort om konstruktionen av programmet, objekten och panelerna:
- Menu bar, där man kan väja privat chat, eller publik chat. Vad som väljs behöver hållas reda på i hela programmet.
- chatt fönster där texten visas : JTextArea
- en kompislista : JList
- Input fält för att skriva text: JTextField
- Man kan välja att visa publika chatten.
- Eller så kan man välja att visa privat chatt, för den kompis man markerat i kompis listan (JList), varje kompis i listan har en nickname.log som innehåller historik som ska skrivas ut i ChatWindow
Totalt så har det blivit 11st klasser inklusive main.
Problemet jag har är - hur kommer jag åt att kommunicera med alla objekt utan att behöva skicka in dom som argument till andra objekt som skapas ?
ChatWindow behöver i nuläget skickas in som argument i princip överallt till andra objekt. Min lärare menar att det är fel att behöva göra så för att det skapar förfärligt många beroenden vilket jag kan hålla med om.
Till exempel så behöver FriendsWindow objekt kunna kommunicera med ChatWindow objekt för att skriva ut chattloggarna, och Inputfältet som används till att skriva in text behöver kunna kommunicera med ChatWindow också och så vidare. Det slutar alltså med att jag får mycket beroenden / en jävla massa objekt som behöver skickas in som argument till andra objekt vid skapande.
Tydligen ska detta kunna undvikas, med interfaces och kanske arv om jag förstod honom rätt.
Skulle någon kunna skriva ett tydligt exempel på lösning på beroenden som en idiot kan förstå?
Jag har lite kännedom om interfaces, och hur jag skapar egna interfaces, men jag kan inte för guds skull förstå varför dom skulle vara bra till, när jag implementerar interfaces i klasser så måste ju ändå exakt samma funktioner skrivas in där, och därmed kan jag väl lika gärna skita i att ha interfaces och skriva dit de funktionerna, och jag kommer ändå att ha lika många beroenden enligt vad jag förstår.
tacksam för hjälp!