Jak zmienić wartość zmiennej we wszystkich klasach?

Jak zmienić wartość zmiennej we wszystkich klasach?
LU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
0

Mam utworzony socket w klasie głównej. W tej klasie tworzone jest kilka innych klas do których przekazywany jest socket. wygląda to np tak:

Kopiuj
public class Przychodzace extends Thread{
    Socket s=null;
    Queue<Wiadomosc> msgToSend = new ArrayDeque<Wiadomosc>();
    
    public Przychodzace(Socket s, Queue<Wiadomosc> msgToSend)
    {
        this.s=s;
        this.msgToSend=msgToSend;
    }

i teraz po zmianach na sockecie np.

Kopiuj
s=null;

zmiany są widoczne tylko w klasie gdzie zmiana została dokonana. Socket w klasie głównej nie zmienia się na null. Powinno chyba działać bo scoket nie jest typu prostego.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Opakuj ten socket w jakiś wrapper i ten wrapper przekaż do tych wszystkich klas. Potem zmieniasz wartość socketu we wrapperze i voila.
Niemniej wygląda mi to na słaby design tak swoją drogą ;]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.