在这里查看单例模式的讲解:http://cantellow.iteye.com/bl... 后面总结中有下面一个问题以及解决的方案,但我不太懂是什么意思,麻烦大神给解答下,谢谢~
问题:
1.如果单例由不同的类装载器装入,那便有可能存在多个单例类的实例。假定不是远端存取,例如一些servlet容器对每个servlet使用完全不同的类装载器,这样的话如果有两个servlet访问一个单例类,它们就都会有各自的实例。
private static Class getClass(String classname) throws ClassNotFoundException {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
if(classLoader == null)
classLoader = Singleton.class.getClassLoader();
return (classLoader.loadClass(classname));
}
}
Untuk mana-mana kelas, pemuat kelas yang memuatkannya dan kelas itu sendiri perlu mewujudkan keunikannya dalam mesin maya Java. Oleh itu, jika anda menggunakan pemuat kelas yang berbeza untuk memuatkan berbilang kelas, anda juga boleh mempunyai berbilang kejadian ini beroperasi sama tetapi merupakan contoh kelas yang berbeza kepada JVM. Saya telah menulis artikel yang menerangkan isu ini sebelum ini. Saya harap ia akan membantu anda.
Saya tidak faham bahagian mana yang anda tidak faham. Saya hanya boleh membuat spekulasi bahawa anda mungkin perlu mempelajari proses pemuatan kelas, mekanisme delegasi ibu bapa pemuat kelas