zoukankan      html  css  js  c++  java
  • [Visual C#] 工厂类的实现

     1     /// <summary>
     2     /// 表示一组静态方法,这些方法用于创建SMSProviderFactory类的一个或多个实例
     3     /// </summary>
     4     public class SMSProviderFactories
     5     {
     6         /// <summary>
     7         /// 返回SMSProviderFactory的一个实例
     8         /// </summary>
     9         /// <param name="providerInvariantName">提供程序的固定名称</param>
    10         /// <returns></returns>
    11         public static SMSProviderFactory GetFactory(string providerInvariantName)
    12         {
    13             if (string.IsNullOrEmpty(providerInvariantName))
    14             {
    15                 throw new ArgumentNullException("providerInvariantName");
    16             }
    17             try
    18             {
    19                 Type type = Type.GetType(providerInvariantName);
    20 
    21                 if (type == null)
    22                 {
    23                     throw new Exception("指定的提供程序并未安装!");
    24                 }
    25 
    26                 FieldInfo field = type.GetField("Instance", BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
    27 
    28                 if ((field != null) && field.FieldType.IsSubclassOf(typeof(SMSProviderFactory)))
    29                 {
    30                     object obj = field.GetValue(null);
    31 
    32                     if (obj != null)
    33                     {
    34                         return (SMSProviderFactory)obj;
    35                     }
    36                 }
    37             }
    38             catch (Exception err)
    39             {
    40                 throw err;
    41             }
    42 
    43             throw new Exception("提供程序丢失");
    44         }
    45     }
  • 相关阅读:
    排序算法之--堆排序
    排序算法之--插入排序
    排序算法之--直接选择排序
    排序算法之--快速排序(及优化测试亿级100_000_000用时)
    分布式计算--(分布式+多进程+多线程+多协程)
    HDU
    2019牛客多校第四场D-triples I 贪心
    Interview_C++_day8
    Interview_C++_day7
    Interview_C++_day6
  • 原文地址:https://www.cnblogs.com/briny/p/2637334.html
Copyright © 2011-2022 走看看