まず、これがばかげた質問である場合はお詫び申し上げます。これは最近私を悩ませています、そして私はそれが尋ねる価値があると思いました...
クラスが次のように流れるアプリケーションがあります。
現在、ClientクラスとServerクラスが、MyAppのメインで作成された相互のインスタンスにアクセスできるようにしようとしています。問題は、インスタンスがmainで作成され(したがって静的になる)、私が行ったことが正しい方法ではないように思われるため、他のクラスにインスタンスを適切に渡す方法を考えていることです。
これが私がしたことです:
public class MyApp {
private static RedClient red_client = null;
private static BlueClient blue_client = null;
private static RedServer red_server = null;
private static BlueServer blue_server = null;
public static void main(String[] args) {
final Client myClient = new Client(arg1, arg2);
red_client = myClient.getRedClient();
blue_client = myClient.getBlueClient();
final Server myServer = new Server(arg3, arg4);
red_server = myServer.getRedServer();
blue_server = myServer.getBlueServer();
}
public static RedClient getRedClient() {
return red_Client;
}
public static BlueClient getBlueClient() {
return blue_client;
}
public static RedServer getRedServer() {
return red_server;
}
public static BlueServer getBlueServer() {
return blue_server;
}
}
私は後でそのように以下を利用するでしょう:
public class Client {
public void SomeMethod {
MyApp.getBlueServer.doSomething(myObject);
}
}
クライアントとサーバーの両方がMyAppと通信するため、これがインスタンスを他のクラスに渡す適切な方法であるかどうかはわかりません。(クラス名はアプリケーションの機能とは関係がないため、無視してください。最初に思いついたので、名前として使用しました)。
何か説明が必要な場合は、私に知らせてください。私は学習と批判を受け入れています。これが間違った方法である場合、それが間違っている理由を説明してから、正しい方法を説明してください。
編集
さらなる解明:
- MyAppはクライアントとサーバーにアクセスできます
- クライアントはRedClientとBlueClientにアクセスできます
- サーバーはRedServerとBlueServerにアクセスできます
他のクラスは互いにアクセスできません。