浅析对PetShop4.0的工厂模式的理解

最近几天在看被传为经典的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);
            }

经过测试,可以输出。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值