通过枚举名与类型名之间的微妙关系来省去类工厂的存在
作者:互联网
定义类的共同接口:
1 interface IScene 2 { 3 }
定义几个测试类:
1 public class LoginScene : IScene 2 { 3 } 4 5 public class MainScene : IScene 6 { 7 8 }
定义枚举(注意,枚举名字需要和类名一致):
1 public enum ESceneType 2 { 3 LoginScene, 4 MainScene 5 }
定义方法,通过枚举创建类对象:
1 IScene CreateScene(ESceneType eScenes) 2 { 3 Type type = Type.GetType(eScenes.ToString()); 4 IScene scene = (IScene)Activator.CreateInstance(type); 5 return scene; 6 }
测试:
1 public class Program 2 { 3 static void Main(string[] args) 4 { 5 var scene = CreateScene(ESceneType.LoginScene); 6 Console.WriteLine(scene.GetType()); 7 8 scene = CreateScene(ESceneType.MainScene); 9 Console.WriteLine(scene.GetType()); 10 Console.ReadKey(); 11 } 12 }
输出结果:
缺点:不能直接查出哪些类被使用了哪些类未被使用,在进行代码清理的时候,可能会被误删除,但是可以通过枚举是否被使用来间接判断类是否被使用。
标签:Console,scene,public,微妙,枚举,IScene,省去,ESceneType 来源: https://www.cnblogs.com/luguoshuai/p/15479851.html