私は、認証トークン(String
)を提供するauthクラスを持っており、そのトークンは他のすべてのクラスで使用できます。小さなコードを書いたのですが、他のすべてのクラスは認証トークンを個別に生成していました。したがって、クラスごとに1つの認証トークンがありました。しかし、私はすぐに以下のようにいくつかの変更を行いました。 Plsはこれが正しいアプローチであるか、それを行う良い方法があるかどうかを確認します。すべての拡張クラスに対して静的変数に一度だけアクセスする
public class AuthProvider {
public static String authKey;
public static String provideAuth() {
AuthProvider pro = new AuthProvider();
String key = pro.generateAuthKey();
authKey = key;
return key;
}
private String generateAuthKey() {
Random rand = new Random();
int n = rand.nextInt(5000) + 1;
return String.valueOf(n);
}
}
上記の一つは、私の認証プロバイダクラスであり、それは
は次のように今、他の操作を実行するために認証トークンを必要とする「のFirstClass」と呼ばれる私の子クラスがある他のすべてのクラスに認証トークンを提供
public class FirstClass extends AuthProvider {
public String getValueFromFirstClass() {
AuthProvider.provideAuth();
String s = AuthProvider.authKey;
return "FirstClassAuth: " + s;
}
}
main
方法がから一定の値を取得する責任があり、このクラスのメソッドを呼び出すためのメインクラスになるだろうSecondClass
と呼ばれる私の2番目の子クラスもあります。
public class SecondClass extends AuthProvider {
public String getValueFromSecondClass() {
FirstClass firstClass = new FirstClass();
String firstClassString = firstClass.getValueFromFirstClass();
String s = AuthProvider.authKey;
return "SecondClass Auth: " + s + " -------- " + firstClassString;
}
public static void main(String[] args) {
SecondClass class2 = new SecondClass();
System.out.println(class2.getValueFromSecondClass());
}
}
私の要件は..私は子供のクラスごとに2つの異なる "AuthTokens"を必要としません。 FirstClass
とSecondClass
の両方で、1つの認証トークンで作業できます。だから私がしたことは正しいのですか?それとも良い方法がありますか?
あなたは[Singleton](https://en.wikipedia.org/wiki/Singleton_pattern)を探していると思います。 – yeputons