源代码:13033480群共享
面向接口的业务管理层,已经很好地解决了数据库的切换问题,不过,这需要修改业务逻辑层中的两个类Category.cs和Item.cs中的语句
private staticreadonly
ICategory dal =new WestGarden.DAL.Category();
和
private staticreadonly
IItem dal =new WestGarden.DAL.Item();
然后重新编译、运行,相当于冷启动。能不能不再重新编译、运行,直接进行切换,实现所谓的“热插拔”呢?
下面的工厂模式解决了这一问题,你只需要改变一下Web.config配置文件,就可实现这一目标。
【操作步骤】
一、新建类库DALFactory,设置属性,添加引用→.NET→System.Configuration;添加引用→项目→IDAL
二、添加类DataAccess.cs,代码如下:
using System.Reflection;
using System.Configuration;
namespace WestGarden.DALFactory
{
public sealed class DataAccess
{
private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
private DataAccess() { }
public static WestGarden.IDAL.ICategory CreateCategory()
{
string className = path + ".Category";
return (WestGarden.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
}
public static WestGarden.IDAL.IItem CreateItem()
{
string className = path + ".Item";
return (WestGarden.IDAL.IItem)Assembly.Load(path).CreateInstance(className);
}
}
}
三、在Web.config文件中添加如下键值
<addkey="WebDAL"value="WestGarden.DAL"/>
四、业务逻辑层BLL中,添加引用→项目→DALFactory
分别修改Catagory.cs和Item.cs中的语句:
private staticreadonly
ICategory dal = WestGarden.DALFactory.DataAccess.CreateCategory();
和
private staticreadonly
IItem dal = WestGarden.DALFactory.DataAccess.CreateItem();
五、编译、运行吧……
会不会有童鞋问:
问:这就是工厂模式?
答:是的。
问:这就是大名鼎鼎的工厂模式??
答:是的。
问:就这么简单???
答:是的。
问:Why
????
有童鞋想回答“How?”的吗??
附冷笑话一则:
有两个渔夫在海边打鱼,一天一个渔夫打上来一条美人鱼,鱼尾巴以上是个超级美女,但是渔夫想了想把她放了,另一个渔夫不解,问:"Why?"第一个渔夫耸耸肩,答道:"How?"
分享到:
相关推荐
为了实现应用系统(业务逻辑)一次编写即可支持多种数据库,需要使用工厂模式实现多数据库支持。 3.一般情况,我们可以在DAL层使用数据库事务,但较多的业务逻辑放在DAL层,使得BLL层和DAL层职责不清,不利于统一...
【王继彬】典型三层结构程序设计-第四节:业务逻辑层BLL
三层架构实现,把表现层(WebUI)与数据访问层(DAL)分开,使用业务逻辑进行处理(BLL), 避免了把数据信息暴露在表现层, 从而提供了程序的性能,使用业务逻辑处理与表现层进行交互, 把表现层的需求,通过...
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
ASP.NET MVC4+EasyUI+三层工厂模式 实现权限管理系统 其中Entity为模型实体层类库;DAL为数据访问层类库,主要负责数据库操作;BLL为业务逻辑类库,Common为公共帮助类库,WebUI为用户层。
ASP.NET MVC4+EasyUI+三层工厂模式 实现权限管理系统 其中Entity为模型实体层类库;DAL为数据访问层类库,主要负责数据库操作;BLL为业务逻辑类库,Common为公共帮助类库,WebUI为用户层。
Bll——业务逻辑层 Model——构造模型(对应数据库字段) 功能很简单,是学习Ajax/Atlas+MVC(三层)入门的好例子 注意:搭建的时候设置根目录下的AjaxMyPage为站点文件夹 可支持Sql、Access、xml三种数据库(在web...
【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。...业务逻辑层 BLL 表示层 UI 主要功能实现 数据访问层 DAL 业务逻辑层 BLL 表示层 UI 三、运行结果
三层架构(3-tierarchitecture)通常是指将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。目的是“高内聚,低耦合”的思想。 一、概念: 三层架构(3-tierarchitecture)通常是指将整个业务...
为了满足系统相应快速、便于操作、易于维护的要求,在软件架构上,采用三层体系结构:界面层UI、业务逻辑层BLL、数据访问层DAL;在设计实现上,我们采用:前端视图层、后台应用层;在体系结构上,我们采用的是.NET...
C# 实现的典型三层架构工厂模式 SQLServerDAL Model IDAL DALFactory DBUtility BLL BaseDAL AccessDAL
CodematicDemoF3 是一个基于工厂模式的三层架构示例项目源码,基于VS2005 SP1开发(如果没有装SP1,web项目会打不开),结构更简洁,提供更多有效的示例源码参考。方便用户更好的理解和使用该架构进行开发,配合动软...
#2 |创建业务逻辑层 本文档是 Visual Basic 教程 (切换到 Visual C# 教程) 本教程中,我们将了解怎样将业务规则集中到在表示层与 DAL 之间,充当数据交互中介的业务逻辑层 (BLL) 中。
此外,抽象出来的IDAL模块,除了解除了向下的依赖之外,对于其上的业务逻辑层,同样仅存在弱依赖关系,因为业务逻辑层只需实例化IDAL模块的接口类后,业务逻辑(BLL)层作为接口的访问控制部分,它处于数
(2)业务逻辑层(BLL,即Business Logic Layer):Service层 a. 接收表示层的请求及调用 b. 组装数据访问层 (3)数据访问层(DAL,即Data Access Layer):Dao层 直接访问数据库的操作
本软件是一个工厂模式三层架构例子程序(★特点与难点是在BLL层使用数据库事务,而不在DAL层使用数据库事务)。程序通过WinForm应用程序实现Sql Server 2005,Sqlite 3的增、删、改、查,分页功能。是学习三层架构、...
用简单三层架构和简单工厂模式实现的登录,分成UI、BLL、DAL、IDAL、DALFactory、SQLHelp、Model。
可以生成简单三层Models DAL BLL
三层个人网站小程序(Ajax) Ajax三层个人网站小程序 <br>DAL——数据层 IDAL——数据接口层(控制是选择什么类型的数据库) Bll——逻辑层 Model——构造模型(对应数据库字段) <br>功能很...
C#代码模板生成器; Model层;DAL层;BLL层代码自动生成; 连接数据库,查询表字段,创建数据模型; 查询表字段,构造数据逻辑; 查询表字段,构造数据库交互的代码。