码迷,mamicode.com
首页 > 其他好文 > 详细

简单工厂、抽象工厂

时间:2016-08-07 16:43:23      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

//IUserInfoDal userInfoDal = StaticDalFactory.GetUserInfoDal();//简单工厂模式比上面的好一些
简单工厂 //IUserInfoDal userInfoDal = StaticDalFactory.GetUserInfoDal();//简单工厂模式比上面的好一些
抽象工厂 //IUserInfoDal userInfoDal = StaticAbstractFactory.GetUserInfoDal();抽象工厂比简单工厂更高级一点

namespace My.OA.DalFactory
{
//职责:建立工厂模式,一个DAL入口:和上下文的概念一样,拿到上下文就可以操作数据库中的表,拿到这个工厂也就能操作他封装的所有实例

//工厂:一种思想,一个实例,通过工厂被广泛调用,这就是一种面向对象的思维,代码重用和高维护性

//简单工厂:生成方式还是需要修改代码的
public class DalFactory
{
//一种依赖抽象编程
public static IUserInfoDal GetUserInfoDal()
{
return new UserInfoDal();
}

}
//抽象工厂:生产方式不修改代码(改配置),需要更规范的书写命名规范
public class StaticAbstractFactory
{
public static IUserInfoDal GetUserInfoDal()
{
//dal实例由配置设置
string DalAssemblyName = System.Configuration.ConfigurationManager.AppSettings["DalAssemblyName"];
//需要更规范的书写命名规范
return Assembly.Load(DalAssemblyName).CreateInstance(DalAssemblyName + ".UserInfoDal") as UserInfoDal;//反射是抽象工厂的实现方式之一,只是一种思想
}

}
}

<appSettings>
<!--抽象工厂创建数据库访问层实例所在 程序集名称-->
<add key="DalAssemblyName" value="My.OA.DAL" />
</appSettings>
<system.web>

简单工厂、抽象工厂

标签:

原文地址:http://www.cnblogs.com/it-xcn/p/5746316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!