PetShop的系统架构设计chuncn

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层,如图所示:

数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。在PetShop的数据访问层中,并没有使用ORM,从而导致了代码量的增加,可以看作是整个设计实现中的一大败笔。

松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。

进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。

“金无足赤,人无完人”,分层式结构也不可避免具有一些缺陷:1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

前面提到,PetShop的表示层是用ASP.Net设计的,也就是说,它应是一个BS系统。在.Net中,标准的BS分层式结构如下图所示:

随着PetShop版本的更新,其分层式结构也在不断的完善,例如PetShop2.0,就没有采用标准的三层式结构,如图三:

从图中我们可以看到,并没有明显的数据访问层设计。这样的设计虽然提高了数据访问的性能,但也同时导致了业务逻辑层与数据访问的职责混乱。一旦要求支持的数据库发生变化,或者需要修改数据访问的逻辑,由于没有清晰的分层,会导致项目作大的修改。而随着硬件系统性能的提高,以及充分利用缓存、异步处理等机制,分层式结构所带来的性能影响几乎可以忽略不计。

PetShop3.0纠正了此前层次不明的问题,将数据访问逻辑作为单独的一层独立出来:

PetShop4.0基本上延续了3.0的结构,但在性能上作了一定的改进,引入了缓存和异步处理机制,同时又充分利用了ASP.Net2.0的新功能MemberShip,因此PetShop4.0的系统架构图如下所示:

比较3.0和4.0的系统架构图,其核心的内容并没有发生变化。在数据访问层(DAL)中,仍然采用DALInterface抽象出数据访问逻辑,并以DALFactory作为数据访问层对象的工厂模块。对于DALInterface而言,分别有支持MS-SQL的SQLServerDAL和支持Oracle的OracleDAL具体实现。而Model模块则包含了数据实体对象。其详细的模块结构图如下所示:

可以看到,在数据访问层中,完全采用了“面向接口编程”思想。抽象出来的IDAL模块,脱离了与具体数据库的依赖,从而使得整个数据访问层利于数据库迁移。DALFactory模块专门管理DAL对象的创建,便于业务逻辑层访问。SQLServerDAL和OracleDAL模块均实现IDAL模块的接口,其中包含的逻辑就是对数据库的Select,Insert,Update和Delete操作。因为数据库类型的不同,对数据库的操作也有所不同,代码也会因此有所区别。

此外,抽象出来的IDAL模块,除了解除了向下的依赖之外,对于其上的业务逻辑层,同样仅存在弱依赖关系,如下图所示:

图七中BLL是业务逻辑层的核心模块,它包含了整个系统的核心业务。在业务逻辑层中,不能直接访问数据库,而必须通过数据访问层。注意图中对数据访问业务的调用,是通过接口模块IDAL来完成的。既然与具体的数据访问逻辑无关,则层与层之间的关系就是松散耦合的。如果此时需要修改数据访问层的具体实现,只要不涉及到IDAL的接口定义,那么业务逻辑层就不会受到任何影响。毕竟,具体实现的SQLServerDAL和OracalDAL根本就与业务逻辑层没有半点关系。

因为在PetShop4.0中引入了异步处理机制。插入订单的策略可以分为同步和异步,两者的插入策略明显不同,但对于调用者而言,插入订单的接口是完全一样的,所以PetShop4.0中设计了IBLLStrategy模块。虽然在IBLLStrategy模块中,仅仅是简单的IOrderStategy,但同时也给出了一个范例和信息,那就是在业务逻辑的处理中,如果存在业务操作的多样化,或者是今后可能的变化,均应利用抽象的原理。或者使用接口,或者使用抽象类,从而脱离对具体业务的依赖。不过在PetShop中,由于业务逻辑相对简单,这种思想体现得不够明显。也正因为此,PetShop将核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。所以表示层和业务逻辑层之间的调用关系,其耦合度相对较高:

THE END
1.自制迷你小宠物店:2025打造你的专属迷你宠物乐园,开启小动物的...创建一个迷你小宠物店不仅能够满足我们对小动物的热爱,也可以成为一种独特的休闲方式。在这个快节奏的现代社会中,拥有一个属于自己的小宠物乐园,能让我们在繁忙的生活中找到一片宁静与欢乐。2025年,我们将为您提供创意与灵感,帮助您打造一个专属的迷你小宠物店,让小动物的奇妙冒险在你的家中展开。 http://ayiszx.qilei.cc/post/18.html
2.钢结构雨篷结构施工图(吊拉式雨棚)结构图纸提示 下载的模型或图纸文件,请在电脑上用“AutoCAD2004 ”打开 作者的其他作品 查看更多 炫彩水刀拼花CAD图集 铺贴大样通用节点CAD图纸 某蒙古包穹顶CAD图纸 新中式茶楼CAD施工图 效果图 某瞭望塔钢结构设计图 时尚宠物店 相关作品 某学校礼堂结构施工图 CA6140车床拔叉铣40×28平面夹具 二层框架结构办公楼建筑结构...https://m.mfcad.com/tuzhi/show_958777.html
3.历史结构图(黄璐).doc下载得到文件列表 历史结构图(黄璐).doc 相关文档 文档介绍文档介绍:原因: ①汉初的形式:经济萧条、国家贫困 ②汲取秦亡于暴政的教训文景之治 措施: ①主义开展农业消费,减轻人民负担 ②提倡节约 ③提倡“以德化民”大一统 原因: ①汉初的形式:经济萧条、国家贫困 ②汲取秦亡于暴政的教训文景之治 措施: ①...https://m.taodocs.com/p-617330520.html
4.铁路敞车车门结构图解视频车友交流7:库斯图的主梁上的没有脱落,主梁没有黑色涂片脱落。我觉应该库斯图主梁平台,还不错。 8:我做了一个下沉后备箱,没有被倾入。车结构还不错, 9:定损...无人超市,无人电玩店,一人食餐厅,自嗨锅,单身公寓,迷你小家电,一人旅行市场的火热恰恰说明,单身人士也是消费的主力军。五、宠物经济大多数宠物主出于情感...https://www.dongchedi.com/tag/ugc/14534779
5.卡通医疗十字架图片免费下载卡通医疗十字架素材宠物店 下载PNG 医疗卡通 下载PNG 卡通医护人员 下载PNG 卡通医疗人物矢量图 下载PNG 下载AI 粉色病毒 下载PNG 卡通细菌图案 下载PNG 护士打针吃药 下载PNG 卡通爱心无偿献血手捧 下载PNG 卡通简约圆形禁止蚊子传染疾病宣图标 下载PNG 视力检查 下载PNG 药物分子结构图 下载PNG 卡通慈善爱心献血万人之...https://ixintu.com/all/katongyiliaoshizijia.html
6.2024人教PEP英语三年级上册Unit3Amazinganimals单元整体教学...十、单元教学结构图 十一、单元统整说明 围绕单元主题,深挖各课时话题,在单元大任务“Amazinganimals”的统领下, 划分成三个活动,整合教学内容和资源,明确单元总目标和课时分目标,设计问题解决 的任务清单(任务1:谈论宠物和野生动物,表达对动物的喜爱之情。任务2:知道动 ...https://m.book118.com/html/2024/0929/7150065110006155.shtm
7.中南大学软件学院架构jpetstore重构jpetstore宠物店程序 该程序是jpetstore宠物店程序,放在tomcat的webapps的目录下就能运行。修改jdbc.properties的数据库密码,先将两个sql文件导入mysql数据库中。 上传者:wsxiaoqiaoliushui时间:2010-02-02 springMVC+mybatis+jpetstore工程源码 springMVC自带的jpetstore用的是ibatis,这里改造为mybatis,数据库用的是mysql...https://www.iteye.com/resource/qq_35607602-9758599
1.2024年宠物店全套CAD施工图+效果图下载编号351955022024年宠物店全套CAD施工图+效果图原创作品是设计师M18232517606123上传到我图网,本作品为版权图片,图片编号35195502,上传时间为2024-11-10 19:57:28,图片大小为6.61MB,格式为dwg,素材尺寸/像素为-高清品质,颜色模式为,本作品为独家原创素材,下载后在本地用 AutoCAD 2007(.dhttps://weili.ooopic.com/weili_35195502.html
2....web的宠物服务商城系统设计与开发javaweb宠物店管理系统3.1.1 系统总体结构图 系统总体分为前端、后台两个主要结构。根据系统整体框架给出了商城总架构图,如图3-1。前端主要分为登录模块、资讯模块、宠物课堂、注册模块、宠物医生模块、宠物商品模块、购物车模块。后台主要分为后台登录模块、用户管理模块、分类管理模块、订单模块、商品管理模块。 https://blog.csdn.net/2301_81127431/article/details/134687615
3.2022宠物店syb创业计划书(通用9篇)在现实社会中,需要使用创业计划书的情况越来越多,创业计划书可以帮助创业者凝聚人心,有效管理。相信很多朋友对拟定创业计划书感到非常苦恼吧,下面是小编为大家收集的2022宠物店syb创业计划书(通用9 篇),欢迎大家借鉴与参考,希望对大家有所帮助。 宠物店syb创业计划书 篇1 ...https://www.oh100.com/kaidian/4351570.html
4.便携人文镜头富士XF23mmF2RWR评测镜头尺寸:?60.0mm x 51.9mm 镜头重量:180g 镜头结构图 这枚一枚小巧的23m定焦镜头,镜头的光学结构还是相对较为复杂的。而从镜头的MTF曲线来看,这枚小巧的23mm镜头也仍然是值得一看的新选择。下面我们就来看看这枚全新的小型化XF镜头的性能表现吧。https://dcdv.zol.com.cn/604/6040960.html
5.宠物店创新创业项目计划书(通用7篇)凡到宠爱有佳服务馆服务的“老顾客”到宠物店均有精美礼品免费赠送。 六、 企业组织结构 企业类型:合伙企业 企业名称:宠爱有佳宠物店 企业组织结构图:略 1、店长职责:维持店内良好的销售业绩,严格控制店内的损耗。审核店内预算和店内支出,合理控制人事成本,保持员工工作的高效率。 https://www.ruiwen.com/chuangyejihuashu/4839518.html
6.软件工程专业毕业设计十篇2.结构设计:指导教师给出建筑方案,由于每位学生要完成几个模块,时间很紧,所以通常选择3-4层的框架,结构选型以简单为宜,主要 要求学生掌握基本的结构设计过程,绘制基础图、框架配筋图、楼层结构图、屋面结构图、楼梯结构图等[6]44。 3.工程量清单编制:根据发给的图纸,依据安徽省建设工程工程量清单计价规范计算基础...https://www.mingkanw.com/w/keyidq4whyoi.html
7.动物医疗素材动物医疗图片动物医疗素材图片下载兽医医生猫检查诊断看病治疗宠物医生 蓝色大气宠物店折页动物宣传三折页 清新淡雅宠物店动物宣传三折页 宠物医院动物门诊宠物店卡通宣传海报设计 简约清新创意宠物店动物宣传三折页 消化系统人体内脏结构图医疗健康身体器官 可爱红猫兽医药物宠物治疗检疫医疗保护 https://www.51miz.com/so-sucai/2145094.html
8.小学数学期中考试试卷分析报告(精选3篇)通过上述产品结构图发现: 不同的战略目标,使得现在宠物APP产生了不同逻辑。并且,每个产品都有不同的切入点,目前最多的切入点为社交和电商。 (1)小狗在家:是以家庭式宠物寄养为卖点的一款产品,主打的是C2C宠物寄养。除此之外,小狗在家还上线了宠圈-宠物社区,用户可通过宠圈分享自己的宠物照片、视频和文章。在盈利...https://www.77cxw.com/fl/1046069.html
9.优秀个人网页(通用8篇)切图:所有的描述图做好了之后就开始切图,切图其实就是把效果图变成几张分辨率低点的图。 完成:做到这一步我的任务就基本完成了,接下来就是产品上架,上架过程中须注意每个选项有没有选对,总之,细心认证点就好。 工作一年时间,对一切越来越熟悉之后,总想找到一些别的感觉。每天我会去不同风格的淘宝宠物店,会观察...https://www.360wenmi.com/f/filee6orn0kk.html
10.医院经营范文12篇(全文)吴先生告诉记者,妻子喜欢狗,总给自家宠物买狗粮和各种玩具。为了图个方便,也希望和其他小狗做朋友,吴先生决定开家宠物用品店。5年前看中这里是因为营业面积非常大,有200平米左右,虽然当时根本用不了这么多面积,但是为长远发展考虑,还是租了下来。在选址前,吴先生亲自到附近小区“散步”,和居民聊天,了解到周围几个...https://www.99xueshu.com/w/ikeyiya7s2gb.html
11.从构造技能开始从构造技能开始全文阅读星殒落思路客第333章 符文武士的技能结构 第334章 再临灰烬之地 第335章 比家族那些都好用 第336章 我也有技能...第688章 到宠物店买食材 第689章 守护者资格挑战 第690章 变成讨论会的宴会 第691章 全民讨论的花边...第1202章 空间阵图的安置 第1203章 终于补全了噩梦鬼头 第1204章 突如其来的封印 第1205章 生命之...http://www.siluke.com/0/113/113220/
12.动物体的结构层次.ppt动物体的结构层次.ppt,物体,结构,层次 温馨提示: 1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG...宠物店VI成品.ppt 2018秋九年级英语全册Unit4Iusedtobeafraidofthedark第1课时习题课件新版人教新目标版21234.ppt 您可能关注 12J609防火门窗图集 《新媒体...https://m.renrendoc.com/paper/99908888.html