| 俊生 的个人资料找不到服务器照片日志列表 | 帮助 |
|
6月22日 Abstract factory目的:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 ================================================ public interface IFruit { }
public class Apple : IFruit { public Apple() { Console.WriteLine(“An apple is got.”); } }
public class Orange : IFruit { public Orange { Console.WriteLine(“An Orange is got.”); } }
public FruitFactory { public IFruit MakeFruit(string fruitName) { IFruit myFruit = null; Try { Type type = System.GetType(fruitName,true); myFruit = (IFruit)Activator.CreateInstane(type); } Catch (TypeLoadException e) { Console.WriteLine(“I don’t know what fruit you want to, caught exception – {0}”,e.Message); } return myFruit; } } 程序引自:www.bbs.infoxa.com ======================== System.Activator:静态方法,以下是msdn的解释。 包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。 CreateInstance 方法通过调用与指定参数匹配程度最高的构造函数来创建在程序集中定义的类型的实例。如果没有指定任何参数,则将调用不带任何参数的构造函数(即默认构造函数)。 您必须具有足够的权限才能搜索和调用构造函数,否则将引发异常。默认情况下,在搜索构造函数的过程中只考虑公共构造函数。如果找不到任何构造函数或默认构造函数,则将引发异常。 联编程序参数指定一个对象,该对象在程序集中搜索合适的构造函数。您可以指定自己的联编程序和搜索条件,但如果没有指定任何联编程序,则使用默认联编程序。有关更多信息,请参见 System.Reflection.Binder 和 System.Reflection.BindingFlags 类。 证据参数会影响构造函数的安全策略和权限。有关更多信息,请参见 System.Security.Policy.Evidence 类。 类型的实例可以在本地或远程站点上创建。如果从远程创建类型,一个激活属性参数将指定远程站点的 URI。在到达远程站点之前,创建实例的调用可能会通过中间站点进行传递。其他激活属性可以修改该调用在远程和中间站点上进行操作所处的环境(或上下文)。 如果在本地创建实例,将返回对该对象的引用。如果从远程创建实例,将返回对代理的引用。通过代理,远程对象可以像本地对象一样进行操作。 GetObject 方法创建当前运行的远程对象、由服务器激活的已知对象或 XML Web services 的代理。您可以指定连接介质(即通道)。有关更多信息,请参见 System.Runtime.Remoting.Channels.ChannelServices 类。 程序集包含类型定义。CreateInstance 方法从当前所运行的程序集创建类型的实例。CreateInstanceFrom 方法从包含程序集的文件创建实例。CreateComInstanceFrom 方法从包含程序集的文件创建 COM 对象的实例。 引用通告此日志的引用通告 URL 是: http://justinxiaownerspace.spaces.live.com/blog/cns!AEE6B3A2845872C0!318.trak 引用此项的网络日志
|
|
|