1. 程式人生 > 其它 >通過列舉名與型別名之間的微妙關係來省去類工廠的存在

通過列舉名與型別名之間的微妙關係來省去類工廠的存在

定義類的共同介面:

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 }

輸出結果:

缺點:不能直接查出哪些類被使用了哪些類未被使用,在進行程式碼清理的時候,可能會被誤刪除,但是可以通過列舉是否被使用來間接判斷類是否被使用。