Witam. Chciałem sobie odświeżyć stary projekt napisany w Swingu z użyciem JDBC. Żadnych Springów, DI, ORMów itd. Mam wątpliwość dotyczącą jednego rozwiązania w kliencie programu. Mam klasę BaseService, w której znajduje się statyczna metoda configSocket(). Konfigurowane jest w niej połączenie z serwerem
Socket socket = new Socket(server, Integer.parseInt(port));
OBJ_IN_STREAM = new ObjectInputStream(socket.getInputStream());
OBJ_OUT_STREAM = new ObjectOutputStream(socket.getOutputStream());
Pola OBJ_IN_STREAM i OBJ_OUT_STREAM są statyczne, ponieważ po klasie BaseService dziedziczą konkretniejsze klasy, typu UserService, w której zaimplementowane są operacje dodawania, edycji, usuwania itd. Poza UserService jest jeszcze kilka serwisów, dlatego pomyślałem, że dziedziczenie i statyczne pola będą tu dobrym rozwiązaniem ponieważ raz utworzymy strumienie podczas startu programu i wszystkie klasy dziedziczące będą z nich korzystać. Klasy serwisowe są często tworzone w różnych JFrameach. Czy rozwiązanie ze zmiennymi statycznymi jest to dobre? Czy może jest to błąd i nie powinno się tak robić? Jeśli tak to jaką alternatywę można zastosować?