前端工程师-企业级系统架构的理解_第1页
前端工程师-企业级系统架构的理解_第2页
前端工程师-企业级系统架构的理解_第3页
前端工程师-企业级系统架构的理解_第4页
前端工程师-企业级系统架构的理解_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、企业级系统架构的理解在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从抽象意义上的三层架构,逻辑上就划分为三个层。 AD: 这个是最基基本的三三层架构构模式。表现层充当当系统的的界面呈呈现以及及UI逻逻辑的角角色,也也就是说说,UII(用户户界面)属于表表现层;举一个对于于aspp.neet WWebFFormm来说,人人们喜欢欢把对于于UI的的控制逻逻辑(服服务器控控件的读读取、设设置、事事件等等等)写在在页面的的后置隐隐藏代码码中,并并且依赖赖业务逻逻辑层。当当然,服服务器控控件支

2、持持数据绑绑定的功功能,可可以通过过数据源源进行绑绑定控件件。这样样就可以以节省在在后置隐隐藏中的的代码。因此,我们们就可以以把表现现层分为为UI用用户界面面以及UUI逻辑辑:UI用户界界面的职职责只是是作为数数据输入入和输出出后的展展示工作作。UI逻辑的的职责是是负责业业务逻辑辑层以及及UI用用户界面面之间的的数据交交互,并并且尽可可能地让让UI逻逻辑不依依赖于UUI技术术。其中UI用用户界面面的实现现方式有有很多,包包括ASSP.NNET,WWinFFormm,WPPF,SSilvverllighht,移移动Weeb,智智能设备备等等。将表现层中中UI页页面和UUI逻辑辑分离的的策略中中,

3、当前前使用最最多的两两种模式式是MVVC模式式和MVVP模式式。MVC模式式,即模模型-视视图-控控制器模模式,通通过视图图触发并并执行某某个操作作,调用用控制器器,通过过控制器器去操作作业务层层,最终终返回模模型,在在视图中中进行展展示。这这里的模模型可以以是一个个领域模模型(DDM),也也可以是是一个数数据迁移移对象(DTOO)。MVP模式式,即模模型-视视图-展展示器模模式,和和MVCC模式有有点像,不不同的是是MVPP中视图图和模型型是被完完全分离离出来的的,视图图中定义义一个接接口,而而展示器器通过调调用该接接口的方方法以控控制视图图。因此此,视图图和模型型是松散散的,展展示器也也充

4、当了了一个控控制器的的角色,同同时它也也不依赖赖于UII技术。另外再介绍绍一种模模式PMM(Prreenntattionn Moodell),它它可以说说是MVVP的变变体,在在PM中中,视图图不定义义接口,这这里的模模型只是是表示视视图状态态的类,视视图中的的元素被被直接绑绑定到模模型属性性上。例例如在WWPF中中,WPPF就先先天的具具有数据据双向绑绑定机制制以及事事件通知知属性机机制。所以它特别别适用于于WPFF,Slliveerliightt等等。在开始业务务层之前前,不得得不说一一个前提提,在一一个小型型项目中中,直接接让表现现层调用用业务层层,足以以解决所所有问题题。但是是,当项项

5、目大到到使用多多种表现现形式,如如使用了了各种UUI技术术,ASSP.NNET,WWPF,移移动设备备等等,就就要考虑虑在你的的表现层层和业务务层之间间增加一一个层,以以至于让让表现层层和业务务层解耦耦,因为为业务层层作为一一个业务务中间件件的平台台,最好好不要暴暴露于表表现层中中,这个个层就是是传说中中的服务务层。架架构图又又演化为为:服务层实际际上并不不执行任任何具体体的工作作,其功功能在于于组织各各个业务务对象,服务层层将业务务层所有有的细节节对表现现层都隐隐藏起来来,服务务器将组组织业务务逻辑层层中的组组件,并并且通过过数据迁迁移对象象(DTTO)与与表现层层交互,因此就就产生一一个D

6、TTO模型型。为了实现服服务的可可重用性性,需要要使用服服务接口口,表现现层通过过规定的的接口访访问功能能。服务务的实现现继承服服务接口口,而服服务的实实现专注注于业务务层的调调用。对于服务层层,常用用的方法法包括WWeb服服务、.NETT Reemottingg、Reest以以及WCCF技术术。本人比较建建议使用用WCFF作为服服务,因因为可以以方便地地通过配配置达到到远程调调用服务务的目的的。服务层消除除了两个个表现层层和业务务层之间间的耦合合,服务务层可以以实现一一个远程程接口,达达到多UUI技术术甚至多多平台上上的通信信。当然增加服服务层也也有缺点点,假如如使用WWCF服服务,会会增加

7、系系统的调调用开销销,进而而影响性性能。业务层中包包含系统统所需要要业务过过程上的的实现,并并与下层层的数据据访问层层交互。我们通常也也叫做业业务层叫叫做业务务逻辑层层,但我我认为业业务逻辑辑层是属属于业务务层的一一方面,业业务逻辑辑更专注注于业务务上逻辑辑算法的的实现。因因为业务务层还可可以包括括其他的的方面。业务层必须须包括对对业务实实体尽心心建模的的对象模模型,表表达了客客户的所所有策略略和需求求的业务务规则,因因此就产产生了领领域模型型。(PS:如如果这里里你不使使用领域域模型,那那么需要要采用业业务规则则层进行行业务功功能上的的业务规规则的验验证和控控制)领域模型包包括对实实体的属属

8、性定义义,方法法定义以以及实体体与实体体之间的的关系。从从这个角角度上看看,UMML建模模至关重重要,通通过对UUML动动态图和和静态图图的描述述,可以以映射到到领域模模型中。从服务层刚刚才讲到到了DTTO模型型,这里里需要一一个机制制将DTTO转化化为领域域模型,所所以产生生了DTTO映射射层(DDTOMMappper)。另外业务层层还包括括核心中中间件技技术,包包括第三三方组件件,以及及工作流流引擎等等等。业务层需要要考虑到到一些与与数据访访问层交交互的设设计模式式,模式式中包括括事物脚脚本模式式、表模模块模式式、活动动记录模模式、领领域模型型模式。事物脚本模模式是通通过方法法来执行行业务

9、流流程,它它是一个个过程式式模型,事事物脚本本的每个个方法都都有一个个特定的的事物脚脚本,它它侧重于于业务上上一系列列流程上上的顺序序操作,它它实现起起来很简简单,但但是它有有个致命命的缺点点就是它它会造成成很多重重复的代代码。表模块模式式比起事事物脚本本模式,具具有一定定的结构构,它的的思想也也很简单单,每个个数据表表都定义义一个业业务组件件(实体体类,实实体操作作类),在在.NEET中更更多的使使用DaataSSet作作为表模模型的数数据交互互。但是是它也有有一个缺缺点就是是它是从从数据库库驱动它它不适合合于大量量的数据据表以及及数据表表之间的的复杂关关系。活动记录模模式中的的对象中中,可

10、以以包含数数据和方方法。它它接近于于数据表表的结构构,它的的对象中中执行方方法中可可以包含含CRUUD操作作,验证证算法,以以及其他他的计算算功能。一一般来说说,领域域模型不不是太复复杂,活活动记录录模式是是个好选选择。当当然他也也存在问问题,同同样地,它它对于复复杂的业业务上,维维护的成成本也很很高,并并且如果果需求变变更导致致数据库库修改,就就需要调调整记录录对象模模型中的的相关代代码。经典应用:LINNQ-TTO-SSQL以以及Caastlle AActiiveRRecoord。领域模型模模式是从从领域驱驱动设计计中衍生生来的,它它是以业业务为核核心的设设计模式式。它对对于复杂杂的业务务

11、逻辑,相相当适用用。前三三种方式式使用的的是以数数据驱动动方式,数数据驱动动方式特特点简单单,但是是当系统统到了一一定的规规模后,就就会到难难以维护护的程度度。数据访问层层的目的的很明确确,主要要作为提提供数据据持久化化的功能能,包括括数据的的读取和和写入,另另外还必必须包括括事务处处理,并并发控制制等等。操作数据库库的方法法可以有有两种方方式,OORM方方式,AADO.NETT方式。ORM可以以采用一一些第三三方的OORM框框架来实实现,AADO.NETT采用AASP.NETT自带的的数据库库操作来来实现。不同的数据据库具有有不同的的持久化化实现,因因此这里里添加一一个存储储仓库接接口层,来来适应不不同的数数据库实实现,这这里你可可以使用用IOCC依赖注注入方式式进行数数据库选选型,可可以利用用Uniity、SSpriing.NETT、Caastlle的IIOC容容器等等等。最后各个层层中都可可以依赖赖于公共共基础设设施层。公共基础设设施层可可以包括括Commmonn通用模模块,LLogggingg日志模模块,EExceeptiion异异常模块块,Coonfiigurratiion配配置模块块,DII依赖注注入模块块,单元元测试模模块以及及第三方方组件(例如NNHibbernnatee、Spprinnt.NNET、C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论