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.小型宠物店装修设计图片公装效果图装一网装修效果图图库专区,收集汇总2024最新最全的小型宠物店装修设计图片,店面装修效果图,为您提供更多小型宠物店装修设计图片设计方案。https://www.zhuangyi.com/xiaoguotu/a235253.html
2.计算机专业毕业设计题目大全(各种类型系统设计想法汇总)14.毕业设计管理系统 15.教师评定管理系统 16.基于PowerDesigner的合同管理系统 17.校园新闻发布系统 18.知识库管理系统 19.网上数码商店 20.网上宠物店 21.库存管理系统 22.电子商务网站 23.JAVA语言考试系统的设计与实现 24.课程教学网站 25.留言板(版)管理系统 ...http://www.ppmy.cn/news/350410.html
3.宠物用品超市加盟宠物用品超市加盟费是多少钱?以派多格连锁兴隆街店为例,店面面积大概50平方米左右,店面一年 的租金再加上首批至少5万元的货品,前期成本在20-30万元。虽然店面租金根据地段不同而有所不同,但是要选在宠物用品量相对较大的地方,开一家一般的中小型宠物店,前期的启动资金大概需要20万元。 二、选址 宠物用品店开店要成功,选址是关键。建议宠物...https://www.jiamengfei.com/xm/111940
4.猫宠物店装修效果图猫宠物店室内设计图片大全设计本为您提供猫宠物店装修效果图,包括猫宠物店装修图片、猫宠物店室内设计图等,看猫宠物店装修设计图片就到设计本。https://www.shejiben.com/works/t209832/
5.宠物店装修设计装信通网宠物店装修设计专区,收集整理精美的宠物店装修设计装修效果图,宠物店装修设计装修图片,宠物店装修设计设计效果图以及宠物店装修设计装修搭配方法供广大业主装修时参考,更多的宠物店装修设计尽在装信通网效果图栏目。https://m.zx123.cn/xiaoguotu/6324/
6.宠物店门头设计宠物店门头效果图宠物店门头图片觅知网为您找到8个原创宠物店门头设计图片,包括宠物店门头图片,宠物店门头素材,宠物店门头海报,宠物店门头背景,宠物店门头模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于宠物店门头素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模https://m.51miz.com/so-sucai/3459172.html
1.宠物店商业计划(精选3篇)近年来,宠物市场越来越热,我们身边的宠物食品、用品店,美容店在几年内增加了很多。超市里与宠物食品、用品有关的产品也由原来的一个货架扩展到一排货架。小区周围的小型超市也增加了宠物食品、用品的货架,各大主流网站也开设了宠物*,到处都可以了解到关于宠物的各种信息。宠物已经成为居民生活中的一部分,宠物市场进入...https://www.kk567.cn/html/67304eadd0b53.html
2.宠物店详细创业计划书(精选10篇)宠物医院、宠物商店和宠物美容院等与宠物相关的各个行业也得到了迅速的发展,作为宠物经济产业链中的三大...本店将聘请经验丰富的淘宝设计师、摄影师,将产品图片、店铺装修做到美轮美奂、独一无二,使得产品能...3、狗狗美容:收费标准:雪纳瑞、西高地、可卡美容、京巴、西施、博美:幼小型50元、标准型80元、巨型120...https://www.oh100.com/kaidian/4752684.html
3.便携人文镜头富士XF23mmF2RWR评测(全文)富士在今年发布了一颗新款的23mm的镜头,作为富士的第三枚等效35mm镜头,也是第二款23mm f/2.0镜头(前一枚在X100上),新镜头在设计思路上有了不小的变化。防护性,宁静感与便携性成为新镜头的设计主题。新一代镜头在小型化和兼容高像素机身方面能否取得足够好的平衡呢?来看看我们的评测内容吧。 https://dcdv.zol.com.cn/604/6040960_all.html
4.宠物商店创业计划书(精选10篇)据统计,一件同样价格的产品,制作成精美图片比没有制作成精美图片的整体销售率高200%,而摆在装修良好的店铺里比在没有装修的店铺的销售率又高150%,这就是店铺装修的魅力。本店将聘请经验丰富的淘宝设计师、摄影师,将产品图片、店铺装修做到美轮美奂、独一无二,使得产品能更好的体现其优点,能够更好的创造销售。https://www.yjbys.com/chuangye/ziliao/chuangyejihuashu/632154.html
5.寻码网ssm宠物店管理平台开发毕设论文 2024-09-20 16:01:50 小程序国产动漫论坛+ssm毕设论文 2024-09-20 16:01:50 入校申报审批系统的设计与实现毕设论文 2024-09-20 16:01:50 宠物店商城小程序设计与实现+ssm毕设论文 2024-09-20 16:01:50 基于javaEE的校园二手书交易平台毕设论文 2024-09-20 16:01:50 防...https://www.xunmaw.com/topic
6.机械专业毕业设计选题(精选6篇)324.2000M液化石油气球罐设计 325.3000M液化石油气球罐设计 26.TKJ-800kg民用电梯设计 27.TKJ-1000kg民用电梯设计 28.TKJ-1200kg民用电梯设计 29.节能型双四连杆抽油机设计 30.节能型双四连杆抽油机运动分析 篇2:机械专业毕业设计选题 ★温室用小型电动旋耕机设计 ...https://www.360wenmi.com/f/filecceuszn4.html
7.宠物店创业计划书(精选7篇)宠物店创业计划书(精选7篇) 现在的宠物行业这么热门,发展的速度犹如火箭一般,很多人也会进入宠物行业创业...3、狗狗美容:收费标准:雪纳瑞、西高地、可卡美容、京巴、西施、博美:幼小型 50元、标准型 80元、巨型...另外,产品均做工上乘、款式新颖,在保证良好质量的同时,漂亮的造型设计更是为本店的产品货源大大加分。https://www.ruiwen.com/chuangyejihuashu/2088182.html
8.java毕业设计合集,毕业再也不用愁phpspringboot505 基于Springboot的网上宠物店系统的设计与实现pf 源码+数据库+论文+说明文档 springboot506 基于Springboot的小区疫情购物系统录pf 源码+数据库+论文+说明文档 springboot507 基于Springboot教学管理系统pf 源码+数据库+论文+说明文档 springboot508 基于Springboot宠物商城网站系统–论文pf 源码+数据库+论文...https://blog.yyzq.team/post/314468.html
9.2021届毕业设计成果展示学生毕业设计成果600702 快递运营管理 201804070106 陈亚晴 长沙家乐福农产品供应链管理优化设计方案 https://mooc1.chaoxing.com/zt/218386647.html 及格 600702 快递运营管理 201804070108 刘亚南 盒马鲜生高升店拣货作业流程优化设计方案 https://mooc1.chaoxing.com/zt/218352213.html 良好 600702 快递运营管理 201804070109 袁婕 ...https://jwc.hnptc.edu.cn/2020_08/31_14/content-22002.html
10.springboot+mysql宠物店管理系统计算机毕业设计源码19751在社会快速发展的影响下,宠物业继续发展,大大增加了宠物管理的数量、多样性、质量等等的要求,使宠物店的管理和运营比过去十年更加困难。依照这一现实为基础,设计一个快捷而又方便的宠物店管理系统是一项十分重要并且有价值的事情。对于传统的宠物管理,宠物店管理系统具有许多不可比拟的优势,首先是快速更新宠物信息,其次...https://blog.csdn.net/vx_Biye_Design/article/details/131371893
11.设计宠物店你想知道什么?怎么设计,还是需要设计呢 https://www.3d66.com/answers/question_1479314.html
12.免费宠物店Logo设计DesignEvo在线Logo制作专家想为你的宠物店或宠物诊所设计一个独特的logo吗?那就试试DesignEvo — 一个专注于各种宠物店logo设计的在线软件,能让你在几分钟内就制作出杰出的宠物店logo。我们不仅为你准备了大量可自定义的宠物logo模板,还为你提供了数百万的矢量图标和数百种专属字体,现在就去选一个logo模板进行定制。 http://www.designevo.com/cn/create/logos/pet-shop.html
13.家居装修∣宠物店设计指南现如今,宠物经济在服务行业的占比日益增大。对于爱宠人士而言,拥有一家自己的宠物店,绝对是一件幸福感爆棚的事。 当然,想要开设一家宠物店也并非那么简单。对于大部分用户来说,如何解决宠物店设计装修问题,就成为一个难以跨越的难题。 为什么宠物店设计那么复杂,这是因为和人类不同,宠物店的设计装修,往往有着严格的...https://www.canva.cn/learn/pet-store-design/