Jak zmienić wartość zmiennej we wszystkich klasach?

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:

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.

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.

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ą ;]

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