网上购物系统(Task101)——业务逻辑层BLL(工厂模式实现热插拔)

源代码:13033480群共享

面向接口的业务管理层,已经很好地解决了数据库的切换问题,不过,这需要修改业务逻辑层中的两个类Category.csItem.cs中的语句

private staticreadonly ICategory dal =new WestGarden.DAL.Category();

private staticreadonly IItem dal =new WestGarden.DAL.Item();

然后重新编译、运行,相当于冷启动。能不能不再重新编译、运行,直接进行切换,实现所谓的“热插拔”呢?

下面的工厂模式解决了这一问题,你只需要改变一下Web.config配置文件,就可实现这一目标。

【操作步骤】

一、新建类库DALFactory,设置属性,添加引用→.NETSystem.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?"

版权所有©2012,西园电脑工作室.欢迎转载,转载请注明出处.更多文章请参阅博客http://blog.csdn.com/yousuosi

转载于:https://www.cnblogs.com/java20130723/archive/2012/05/13/3211699.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值