zoukankan      html  css  js  c++  java
  • 通过枚举名与类型名之间的微妙关系来省去类工厂的存在

    定义类的共同接口:

    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 }

    输出结果:

    缺点:不能直接查出哪些类被使用了哪些类未被使用,在进行代码清理的时候,可能会被误删除,但是可以通过枚举是否被使用来间接判断类是否被使用。

  • 相关阅读:
    win7下安装memcached
    Integer自动装拆箱
    XShell配色方案
    XShell上传和下载
    基于注解的Spring AOP拦截含有泛型的DAO
    PAT Advance 1020
    PAT Advance 1014
    JavaWeb中文乱码问题解决思路
    eclipse启动错误
    操作系统(一)
  • 原文地址:https://www.cnblogs.com/luguoshuai/p/15479851.html
Copyright © 2011-2022 走看看