设计模式-改进抽象工厂模式

抽象工厂模式还是需要实例化对应的抽象工厂的子类才能得到具体产品类   

改进一:

而改进实例化就需要用到简单工厂模式   在DataAccess里面根据db字符串返回相应的抽象工厂就行了

 改进二:简单工厂的缺点在于switch  怎么根据字符串动态的得到相应的类呢   所以就需要用到IOC容器注入或者反射 

改进二就是用反射改进简单工厂

反射的命名空间:System.Reflection   

             使用方式:  IUser user=(IUser)Assembly.Load("程序集名称").CreateInstance("命名空间.类名");

    简单理解为  先Load加载程序集dll文件  然后再去找到具体类名 去创建实例 也就是 CreateInstance

下图的db字符串 可以使用配置文件来代替

原文地址:https://www.cnblogs.com/liagon/p/14311952.html