Witam,
Chciałbym zapytać, czy w Javie jest jakiś mechanizm pozwalający na przekazywanie danych pomiędzy obiektami różnych klas? Lub jak takie komunikacje powinny być implementowane?
Przykładowy rzut na zamysł o który mi chodzi:
public class ServerSocket
{
ServerSocket() {
/** open connection, speak to server and read from */
}
public void sendToServer(String msg) {
/**
...
*/
}
public String readFromServer() {
/**
...
*/
}
}
public class User
{
public void addUser() {
/**
read username from keyboard
send username to server via existing socket
*/
}
public String listUsers() {
/**
method called when socket get from server <listUsers>user1;user2;user3;(...)</listUsers>
display users list in specified format
*/
}
}
public class MainThread
{
public static void main(String[] args) {
ServerSocket serverConnection = new ServerSocket();
User operator = new User();
/** Some process here */
}
}
Pytanie, jak obiekt "operator" może wysłać dane do serwera używając połączenia nawiązanego przez obiekt "serverConnection"?
Oraz odwrotnie, jak "serverConnection" może operować na metodach obiektu "operator"?
Generalnie chodzi o sposób zbierania i przetwarzania (np. wysyłania do serwera) danych wygenerowanych przez inne obiekty oraz odwrotnie - przetwarzania danych z serwera przez odpowiednio wskazany obiekt.
Dodam, że obiektów takich jak operator (innych klas) miałoby być więcej i w miarę czasu jeszcze przybywać.
Ponad to jeśli jest to istotne, każdy obiekt to osobny Thread.
P.S.
Chciałbym zwrócić uwagę, że chodzi o obiekty, a nie klasy, więc o ile rozumiem temat, to dziedziczenie z innej, zbiorczej klasy nie pomoże, gdyż operator i serverConnection nie wiedzą o swoim istnieniu (czy jestem w błędzie?).