NpetShop浅析
2005-11-27 mixiaobo
本人最近为了学习Ibatisnet相关组件,下载了相关例程---NPetShop进行研究,相信大家对petshop应该比较熟悉,作为介绍新的设计体系结构的范例,其良好的设计,很多地方是值得我们去学习的,并可以直接运用到实际的开发工作中.
那现在就开始吧!(由于本人水平有限,如果有些地方说的不好,还请各位多多指教,先谢谢)
NPetShop是采用多层架构的Web应用,我没有看过以前的PetShop程序,所以说不出他们之间的差别,但是NPetsShop主要是为了应用Ibatisnet而产生的,所以,我认为主要的差别还是在数据的持久层吧.
NPetShop的结构大致如下:
一、拥有一系列贯穿整个系统的领域模型
二、持久层完成领域对象的持久化操作,直接和数据库进行交互(通过IBatisnet进行映射)
三、服务层对持久层进行封装,进行领域对象的操作
四、表现层
五、UI界面
Domain是整个系统的基础,其抽象出了整个系统的领域对象,当然这里抽象出来的领域对象其实是不完全的,只是作为了没有包含行为的数据载体,通过外部的行为对其进行操作.
数据持久化层采用了Ibatisnet系列组件,使用了DAO对象,该对象为数据访问层提供了统一的访问接口,可以和ADO.net \ NHibernate \ Ibatisnet SqlMapper等协同完成数据访问任务,屏蔽了底层数据映射,并且支持扩展。该组件本人试用了一下,很方便,可以满足不同需求的数据访问层任务,同时支持分布式事务,感兴趣的朋友可以下载来试试。
Service层对数据持久层进行了封装,主要完成一些针对对应的Domain对象的行为,这一层使用统一的DAO进行操作,完成业务行为
表现层定义了与界面操作相关的后台实现,其行为主要是针对界面操作的,该层调用Service层的业务方法完成界面操作
最后,of course,Web UI层是展现给用户的,主要是与界面相关元素的定义与使用。
该解决方案结构其实是一般应用的典型的实现方式,结构分层清晰。灵活性也较强,最明显的地方就是数据持久层。