PetShop 学习(三层结构)
PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。
Petshop三层式结构,从下至上:数据访问层、业务逻辑层(又或成为领域层)、表示层。
数据访问层:也称持久层,负责数据库的访问。在PetShop的数据访问层中,并没有使用ORM,导致了代码量的增加。
业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。如果涉及到数据库的访问,则调用数据访问层。
表示层:是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。
分层式结构的优势:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。
分层式结构的缺陷:
1、降低了系统的性能。
2、有时会导致级联的修改。
分层式结构不断完善,PetShop2.0没有采用标准三层式结构,没有明显的数据访问层设计,提高了数据访问的性能,但导致了业务逻辑层与数据访问的职责混乱。
PetShop3.0将数据访问逻辑作为单独的一层独立出来。
PetShop4.0延续了3.0的结构,性能上作了一定的改进,引入了缓存和异步处理机制,同时利用了ASP.Net 2.0的新功能MemberShip。
3.0和4.0的系统架构核心内容没有变化。在数据访问层(DAL)中,仍然采用DAL Interface抽象出数据访问逻辑,并以DAL Factory作为数据访问层对象的工厂模块。对于DAL Interface,分别有SQL Server DAL和Oracle DAL具体实现。Model模块则包含数据实体对象。
数据访问层中采用了“面向接口编程”思想。抽象出来的IDAL模块,脱离了与具体数据库的依赖,使得整个数据访问层利于数据库迁移。DALFactory模块专门管理DAL对象的创建,便于业务逻辑层访问。SQLServerDAL和OracleDAL模块均实现IDAL模块的接口。
BLL是业务逻辑层的核心模块,包含了整个系统的核心业务。在业务逻辑层中,不能直接访问数据库,而必须通过数据访问层。层与层之间的关系就是松散耦合。
PetShop 4.0中引入了异步处理机制。插入订单的策略可以分为同步和异步,两者的插入策略明显不同,但对于调用者而言,插入订单的接口是完全一样的,PetShop 4.0中设计了IBLLStrategy模块。PetShop将核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。

浙公网安备 33010602011771号