- 1 // 该类不是一个公开类
- 2 // 但是该类的实现应用了单例模式
- 3 internal sealed class SR
- 4 {
- 5 private static SR loader;
- 6 internal SR()
- 7 {
- 8 }
- 9 // 主要是因为该类不是公有,所以这个全部访问点也定义为私有的了
- 10 // 但是思想还是用到了单例模式的思想的
- 11 private static SR GetLoader()
- 12 {
- 13 if (loader == null)
- 14 {
- 15 SR sr = new SR();
- 16 Interlocked.CompareExchange<SR>(ref loader, sr, null);
- 17 }
- 18 return loader;
- 19 }
- 20
- 21 // 这个公有方法中调用了GetLoader方法的
- 22 public static object GetObject(string name)
- 23 {
- 24 SR loader = GetLoader();
- 25 if (loader == null)
- 26 {
- 27 return null;
- 28 }
- 29 return loader.resources.GetObject(name, Culture);
- 30 }
- 31 }