星空网 > 软件开发 > ASP.net

终极版:由简单工厂模式,升级到抽象工厂模式(用到反射)

前面两个已经学习简单三层到简单工厂模式的变化,但是简单工厂模式还是有个缺点,就是简单工厂中集合了所有的实例的创建。也不是很好。

现在想到使用抽象工厂的方式来实现这个:

我们在程序集中加上下面的代码:

<appSettings> <!--命名空间--> <add key="DALNameSpace" value="DAL"/> <!--程序集--> <add key="DALAssembly" value="DAL"/></appSettings>

然后新建一个抽象工厂类:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Reflection;using System.Configuration;using IDAL;namespace DALFactory{  public class DALAbstractFactory  {    /// <summary>    ///命名空间    /// </summary>    public static string DALNameSpace    {      get      {        return ConfigurationManager.AppSettings["DALNameSpace"];      }    }    /// <summary>    /// 程序集    /// </summary>    public static string DALAssembly    {      get      {        return ConfigurationManager.AppSettings["DALAssembly"];      }    }    public IClassDAL GetClassInstance()    {      string fullNameSpace = DALNameSpace + ".ClassDAL";     return CreateInstance(fullNameSpace, DALAssembly) as IDAL.IClassDAL;    }    /// <summary>    /// 创建实例    /// </summary>    /// <param name="fullClassNameSpace"></param>    /// <param name="assembly"></param>    public static object CreateInstance(string fullClassNameSpace,string assembly)    {     var DALAssembly= Assembly.Load(assembly);     return DALAssembly.CreateInstance(fullClassNameSpace);    }  }}

上面的方法,通过反射,创建DAL数据访问层的实例。

现在在业务层,我们可以这样:

using DAL;using Entity;using IDAL;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace BLL{  public class ClassBLL  {    //耦合度太高    // ClassDAL dal = new ClassDAL();    //这种还是有耦合,业务层和数据访问层耦合度太高    //IClassDAL dal = new ClassDAL();    //引入简单工厂模式    //IClassDAL dal = DALFactory.DALFactory.GetClassInstance();    //引入抽象工厂     IClassDAL dal = DALFactory.DALAbstractFactory.GetClassInstance();    /// <summary>    /// 获取Class列表    /// </summary>    /// <returns></returns>    public List<ClassEntity> GetList()    {      return dal.GetList();    }  }}

效果图:

终极版:由简单工厂模式,升级到抽象工厂模式(用到反射)

 




原标题:终极版:由简单工厂模式,升级到抽象工厂模式(用到反射)

关键词:反射

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

顺丰快递(国际):https://www.goluckyvip.com/news/4688.html
TikTok二次元好物“猫咪挂钩”,会成为亚马逊下个爆款么?:https://www.goluckyvip.com/news/4689.html
货值超1700万美元,“史上最贵”中欧班列“长安号”发车!:https://www.goluckyvip.com/news/469.html
A+ 物流计划将于 UTC 时间2021年6月16日新上线七个路向国:https://www.goluckyvip.com/news/4690.html
深度访谈丨TikTok为企业带来的机遇与挑战:https://www.goluckyvip.com/news/4691.html
外媒:拜登政府撤销对TikTok及WeChat等APP禁令:https://www.goluckyvip.com/news/4692.html
17万件月销量!Wildplus Beauty香薰身体精华油大热趋势 :https://www.kjdsnews.com/a/1836305.html
17万件月销量!Wildplus Beauty香薰身体精华油大热趋势 :https://www.goluckyvip.com/news/186214.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流