C#设计模式:抽象工厂模式之反射+配置文件
反射
就是不通过new却能得到对象的一种方法。
利用字符串来实例化对象,变量可替换,去除了switch判断的麻烦。
首先是反射+抽象工厂的代码结构图(数据访问程序):
可以和抽象工厂模式代码结构图进行比较
我们可以发现:DataAccess类使用反射技术取代了IFactory、SqlSeverFactory、AccessFactory
那么反射需要怎么写?
下面是代码的对比:
//常规的写法
IUser result= new SqlseverUser();
//反射的写法
using System.Reflection ;
//先引用System.Reflection的命名空间
IUser result = (IUser) Assembly .Load ("当前'程序集'的名称").CreateInstance ("当前'命名空间'名称.SqlseverUser