最近在看PetShop4.0 ,暂且熟悉了一些数据库层的设计。
看了看,其实也不是很复杂。主要就是使用了一个工厂 ,以及一个IOC以来注入。
我所画的类图如下(不是很标准,自己的UML水品一般。。。)
其中的web.config是我自己天上去的,主要就是为了说明一下IOC的问题。
其中的Model主要定义了一些实体类。
IDAL提供了数据库访问层的抽象,分别有SQLDAL 和OracleDAL去实现。
DALFactory是一个反射工厂,通过读取配置文件中的配置,判断使用的那个DAL,然后利用反射生成相应的IDAL实例。
DALFactory代码如下
public sealed class DataAccess {
// Look up the DAL implementation we should be using
private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
private static readonly string orderPath = ConfigurationManager.AppSettings["OrdersDAL"];
private DataAccess() { }
public static PetShop.IDAL.ICategory CreateC