Lớp học có được liệt kê bên dưới một singleton không? Vì hàm tạo được khai báo là công khai, tôi có thể suy ra rằng lớp đó là một singleton có triển khai sai không?Lớp này có phải là singleton không?
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;
}
}
Một lớp không thể là một singleton, chỉ các đối tượng có thể là khi chúng là một loại. Nhưng các lớp có thể thực hiện mẫu đơn để hạn chế instantiation cho một đối tượng :) – zapl
Lưu ý bên: 'simulator' không nên là' static' nếu nó được khởi tạo trong 'CreateDevice' - constructor - hoặc làm cho nó tĩnh và tham chiếu đến nó thông qua classname 'CreateDevice.simulator' HOẶC loại bỏ từ khóa' static'. (Điều này không thực sự có bất cứ điều gì để làm với câu hỏi là singleton, mặc dù) – Hulk
Bạn đang phải. Đây là một mã có vấn đề cần được sửa đổi. –