ví dụ tôi có lớp Singleton
với lĩnh vực tĩnh instance
:Singleton lớp với classloaders khác nhau
public class Singleton {
private static Singleton instance;
// other code, construct, getters, no matter
}
tôi có thể nạp lớp này hai lần với hai classloaders khác nhau. Làm thế nào tôi có thể tránh nó? Nó không an toàn và nguy hiểm.
Ngoài ra, nếu tôi đặt dụ thành null, nó sẽ được đặt thành rỗng cho cả hai lớp?
Singleton singleton = Singleton.getInstance();
singleton = null;
Nếu bạn thực sự muốn đạt được mẫu thiết kế đơn lẻ, hãy làm theo [loại enum] (http://en.wikipedia.org/wiki/Singleton_pattern#The_Enum_way) trong Java - "* loại enum phần tử đơn lẻ là cách tốt nhất để thực hiện một singleton * " – Lion
mẫu enum sẽ không ngăn cản sự hiện diện của một cá thể trên mỗi trình nạp lớp, phải không? – keuleJ
Về singletons: http://weblogs.java.net/blog/kirillcool/archive/2005/08/how_single_is_y.html – keuleJ