PetShop项目学习笔记(二)

本文详细解析了PetShop项目中的工厂模式实现,重点介绍了工厂方法模式的应用,包括BLL层和DAL层之间的交互过程,以及如何通过配置文件动态创建DAL层实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天计划学习一下PetShop中的工厂模式。PetShop中的工厂模式是工厂方法模式,

还是按照原来的顺序看:NavigationControl.ascx进入,查看Page_Load事件中重点查看BindCategories()方法。

View Code
1 private void BindCategories() {
2 Category category = new Category();
3 repCategories.DataSource = category.GetCategories();
4 repCategories.DataBind();
5 }

第二句定义了一个Category对象category,主意这里引用的是BLL程序集中的Category,通过GetCategories()方法返回了IList<CategoryInfo>数组作为数据源。这里有两个类BLL.Category和Model.CategoryInfo,前者建立了对象关系映射,后者仅仅是一个对象类,记录了对象的一些属性信息。

重点看BLL.Category类开始定义的代码,BLL(A business component to manage categories业务逻辑),对OracleDAL的类做一次包装:

 private static readonly ICategory dal = PetShop.DALFactory.DataAccess.CreateCategory();

这里通过DALFactory工作空间下的类DataAccess的方法CreateCategory()创建了一个ICatefory实例,这个Category类是OracleDAL程序集中的。通过查看类DataAccess的CreateCategory()方法可以看到这一点:

1 private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
2 private static readonly string orderPath = ConfigurationManager.AppSettings["OrdersDAL"];
View Code
1 public static PetShop.IDAL.ICategory CreateCategory() {
2 string className = path + ".Category";
3 return (PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
4 }

可以看到这里通过读取OrdersDAL字符串,根据字符串创建了一个OrdersDAL程序集下的Category实例。这里DataAccess类的作用主要就是创建了实例。
下面分析程序的架构。

转载于:https://www.cnblogs.com/yhlx125/archive/2012/03/14/2395458.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值