以下のクラスはシングルトンですか?コンストラクタはpublicとして宣言されているので、クラスが間違った実装を持つシングルトンであると推測できますか?このクラスはシングルトンですか?
public class CreateDevice extends Functionality{
private static Simulator simulator;
ConnectionDB connect = ConnectionDB.getInstance();
public CreateDevice(Simulator simulator){
this.simulator = simulator;
}
private static CreateDevice instance;
synchronized public static CreateDevice getInstance() {
if(instance == null){
instance = new CreateDevice(simulator);
}
return instance;
}
}
クラスをシングルトンにすることはできません。オブジェクトは、1つの種類のオブジェクトである可能性があります。しかし、クラスはインスタンス化を1つのオブジェクトに制限するためにシングルトンパターンを実装することができます:) – zapl
サイドノート: '' CreateDevice' - コンストラクタで初期化された '' simulator''は静的であってはなりません - 静的にしてclassname 'CreateDevice.simulator'または' static'キーワードを削除してください。 (これは実際にシングルトンであるという問題とは関係ありません) – Hulk
あなたは正しいです。これは変更が必要な問題のコードです。 –