PetShop分析

  
第一部份:工厂模式
一、项目名称及描述: ( 实现步骤为: 4-3-6 -5-2-1)
1
WEB =表示层
2
BLL =业务逻辑层
3
IDAL =数据访问层接口定义
4
Model =业务实体
5
DALFactory =数据层的抽象工厂 ( 创建反射 )
6
SQLServerDAL SQLServer 数据访问层 / oracleDAL Oracle 数据访问层
DBUtility
数据库访问组件基础类
二、项目引用关系
1
Web 引用 BLL
2
BLL 引用 IDAL Model ,使用 DALFactory 创建实例。
3
IDAL 引用 Model
4
Model 无引用。
5
DALFactory 引用 IDAL ,通过读取 web.config 里设置的程序集,加载类的实例,返回给 BLL 使用。
6
SQLServerDAL 引用 Model IDAL ,被 DALFactory 加载的程序集,实现接口里的方法。
三、实现步骤
1
、创建 Model ,实现业务实体。
2
、创建 IDAL ,实现接口。
3
、创建 SQLServerDAL ,实现接口里的方法。
4
、增加 web.config 里的配置信息,为 SQLServerDAL 的程序集。
5
、创建 DALFactory ,返回程序集的指定类的实例。
6
、创建 BLL ,调用 DALFactory ,得到程序集指定类的实例,完成数据操作方法。
7
、创建 WEB ,调用 BLL 里的数据操作方法。
注意:
1
web.config 里的程序集名称必须与 SQLServerDAL 里的输出程序集名称一致。
2
DALFactory 里只需要一个 DataAccess 类,可以完成创建所有的程序集实例。
3
、项目创建后,注意修改各项目的默认命名空间和程序集名称。
4
、注意修改解决方案里的项目依赖。
5
、注意在解决方案里增加各项目引用。
第二部份: Profile 的使用 ( 也是工厂方法 )
概述: PetShop Profile 通过自己的 ProfileProvider 来实现。
一、项目名称及描述
1
Profile Profile 的数据访问层
2
ProfileDALFactory ProfileDAL 的工厂类 ( 反射创建 ProfileDAL)
3
IProfileDAL Profile 的数据访问层接口定义
4
SQLProfileDAL SQL Server Profile Providers 做用户状态管理
二、项目引用关系
1
Profile 引用 ProfileDALFactory IProfileDAL Model 。通过 ProfileDALFactory 的方法创建程序集实例。
2
ProfileDALFactory 引用 IProfileDAL 。实现程序集实例的方法。
3
IProfileDAL 引用 Model 。实现接口。
4
SQLProfileDAL 引用 Model IProfileDAL 。被 ProfileDALFactory 加载的程序集,实现接口里的方法。
三、实现步骤
1
、创建 Model ,实现业务实体。
2
、创建 IProfileDAL ,实现接口。
3
、创建 SQLProfileDAL ,实现接口里的方法。
4
、增加 web.config 里的配置信息,为 SQLProfileDAL 的程序集。
5
、创建 ProfileDALFactory ,返回程序集的指定类的实例。
6
、创建 Profile ,实现 Profile Provider
7
、在 web.config 文件中增加配置节 profile ,增加属性及类型, provider Profile 。例:
<system.web>
<profileautomaticSaveEnabled="false" defaultProvider="
默认的 Profile Provider">
<providers>
<addname="
自己命名的 Provider 名称 " connectionStringName=" 配置文件里的数据库链接名称 " type=" 自己的 Provider 实现类,需要自己重写 " applicationName=" 自己定义的应用程序名称 "/>
</providers>
<properties>
<addname="
自己命名的 Profile 名称 " type=" 自己的类,需要构建 " allowAnonymous="false" provider=" 上面的自己命名的 Provider 名称 "/>
</properties>
</profile>
</system.web>
注意事项:
1
Profile type 可以为自己的类,包括业务实例或方法等。
2
、通过重写 ProfileProvider 里的部份方法,实现在自己的数据库里记录自己想要的个性化用户信息。
3
、如果每个用户有大量的数据信息,则该类数据信息不要通过 Profile 来记录。
4
、被定义为 Profile type 的类,必须在类定义前增加 [Serializable] 以实现可序列化。
5
、接口定义的类型必须为类。
6
Profile Provider 类里必须增加 System.Web.Profile System.Configuration 的引用到项目中。
7
、如果需要支持匿名用户,增加 <anonymousIdentification enabled="true" /> web.config 里,在 profile 之间。
8
、使用 Profile.Save 方法后,将调用 ProfileDALFactory 里的方法将数据保存到数据库。
参考:本系列试图对PetShop作一个全方位的解剖,依据的代码是PetShop4.0,可以从链接http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp中获得。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值