最近几天在看被传为经典的PetShop4.0,感觉收获还是挺大的
Model层是数据库的实例化,对应数据库实体,写起来比较简单。
IDAL类,是数据访问的抽象接口,为了统一数据访问的形式,是一个标准。
SQLServerDAL是数据访问的具体实现,继承了IDAL接口,而DButility是对数据库的基本的增删改查操作。
数据库访问的配置文件都写在config文件中,为了方便更改。
由于对反射和工厂模式没有接触过,看了部分博客代码,照着写了一小段DALFactory的DataAccess的代码
//读取配置文件
private static readonly string path=ConfigurationManager.AppSettings["WebDAL"];
//通过反射方式,创建实例
public static PetShop.ICategory.ICategory CreateCategory()
{
string classname = path + ".CategoryDAL";
//classname = " PetShop.SQLSeverDAL.CategoryDAL";
return (PetShop.ICategory.ICategory)Assembly.Load(path).CreateInstance(classname);
}
然后在测试类中,调用工厂类,并传递给接口
//通过工厂类创建方法
PetShop.ICategory.ICategory factoryDAL = DALFactory.DataAccess.CreateCategory();
IEnumerable<Model.Category> Ilist= factoryDAL.getCategories();
Console.WriteLine("这些实例是通过工厂模式创建的:");
foreach (Model.Category ca in Ilist)
{
Console.WriteLine("ID:{0},Name:{1},Desc:{2}",ca.CategoryId,ca.CategoryName,ca.Description);
}
经过测试,可以输出。