您好,欢迎访问一九零五行业门户网

工厂模式IDAL详解

idal 一、 idal主要功能: 1、这完全是工厂模式的一部分实现而已 2、这是一组接口类,其中包括了每个要公开的数据访问方法。为每个数据库产品单独编写的dal(数据访问层)都要实现这组接口所定义的方法 3、也就是规定了在dal中编写的对用户账号进行操作的类
idal一、 idal主要功能:
1、这完全是“工厂模式”的一部分实现而已
2、这是一组接口类,其中包括了每个要公开的数据访问方法。为每个数据库产品单独编写的dal(数据访问层)都要实现这组接口所定义的方法
3、也就是规定了在dal中编写的“对用户账号进行操作的类”所必须执行的方法!
4、idal要达到的目的是:实现业务逻辑(bll)与数据库访问(dal)的完全分离!!!
5、idal各个类(idal文件夹中的各个文件)划分或者说编制的原则,更趋向于“将对数据库的不同操作进行归类”,考虑的主要方面是数据库操作!!!例如,有对用户账号进行的一系列数据库操作,则将这一系列操作统一放置于iaccount接口(将来实现后的account类)文件当中
二、实现细节:
1、iaccount.cs文件:为针对不同数据库产品编写的“操作用户账号的类”所必须实现的一系列方法定义契约
2、iinventory.cs文件:定义“操作库存量的类”所必须实现的一系列方法;或者说将操作库存量的一系列(所有)方法做一个汇总
3、iitem.cs文件:定义“操作某一item的类”所必须实现的一系列方法。(item在model中定义了,是指具体某一类别的product,如男猫或女猫)
4、对于其中的getitemsbyproduct()方法,返回的是一个arraylist的接口类型(ilist)的对象
(见问题部分!)
5、iorder.cs文件:定义了一组dal层中“操作用户订单的类”必须执行的方法。其中包括“添加一张新订单”的方法insert()和根据一个已有的订单号取得此订单详细信息的方法 getorder(),此方法返回的是一个orderinfo对象。(model中的orderinfo类模型定义了用户的某一张order中相关的信息,如发货地点,总价,信用卡号码等等)
6、iproduct.cs文件:定义类一组在dal层中编写的“对product进行操作的类”
7、 iprofile.cs文件:定义一组在dal层编写的“对用户profile进行操作的类”
三、启发:
1、这样就可以让在bll层只针对idal层定义的接口进行编程(使用idal接口定义的这些方法)就可以了!!!无论在底层使用了什么厂家的数据库产品,有区别的只是针对此数据库产品编写的dal层(相同的方法,如signin()方法,对于不同的数据库产品,可能有不同的实现方式!),而不会影响到上层的bll层已经编写好的内容!
2、从这里可以看到软件架构师和程序员工作上的区别!架构师要负责的是搭建系统的层次结构,定义接口;而程序员要负责的是针对接口的具体代码实现过程!
3、这个idal接口的使用,主要是为了保证在底层数据库实现,甚至数据库产品发生变化的时候,不需要对上层bll层的业务逻辑进行大量的修改!bll层针对idal接口编程即可!!!
4、idal文件夹中定义的所有的接口中的所有的方法,包括了整个程序要对数据库进行操作的所有方法
5、由于petshop只是一个演示程序,所以若对数据库操作的某一类别(如对account进行操作)中定义的“操作类”不够用(如除了接口中定义的几个方法外还需要其他account操作),还可以在接口中追加其他的方法,用以约束dal层的实现类(如account类)必须执行这些新增加的方法!
其它类似信息

推荐信息