数据访问层设计
‘壹’ .net中的三层架构中数据访问层和业务逻辑层为什么要分开
数据访问层主要目的是屏蔽上层业务逻辑与底层数据访问,使业务与数据操作无关。
分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高局芹轿。
松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。
进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。
“金无桐肆足赤,人无完人”,分层式结构也不可避免具有一些缺陷:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务首粗可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
‘贰’ asp.net中的三层架构是什么意思mvc设计模式是什么它们之间有关系吗
三层架构和MVC是有明显区别的,
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。握稿铅
3、数据访问层敬历(DAL):该层所做事务直接操作数据库,针对数据的增添段好、删除、修改、更新、查找等。
MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。
所以, .net的三层结构中,并没有action这个概念。
可以这样说,如果深入理解了mvc,肯定是很容易理解asp.net的三层架构的。
‘叁’ 银行应用系统的持久层架构设计中有哪些数据访问模式
[编辑本段]设计模式和框架现在,可复用面向对象软件系统现在一般划分为三大类:应用程序工具箱和框架(Framework),我们平时开发的具体软件都是应用程序;java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类。EJB(EnterpriseJavaBeans)是Java应用于企业计算的框架.框架通常定义了应用体系的整体结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。框架主要记录软件应用中共同的设计决策,框架强调设计复用,因此框架设计中必然和雹物要使用设计模式.另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式肆激,毫无疑问,你将迅速掌握框架的结构,我们一般开发者如果突然接触EJBJ2EE等框架,会觉得特别难学,难掌握,唤液那么转而先掌握设计模式,无疑是给了你剖析EJB或J2EE系统的一把利器。
‘肆’ C# 数据访问层设计
为每个数据访问对象定义接口和模型,然后针对具体数据源做实现,使用之前游拆定义的模型,继承之前定义的型孙接口。然后创建个抽象类,静态类也行,包含多个静态方法,特定方法用来创建特定的数据访问对神租枣象,方法利用反射来创建实例,至于要创建什么数据源的什么实例,就配置在配置文件里。
‘伍’ java项目,如何实现业务逻辑层和数据访问层的分离
这个是通过三层结构来实现的。
第一层:controller,本层主要负责页面信息传递;
第二层:service,本层主要接收控制层参数,进行业务方面的处理,之后访问数据层。
第三层:,本层主要接收业务层内容,之后进行数据的存储和变更、删除操作。
这样就可以实现业务层和数据层的分离了。
‘陆’ 简述分层架构的设计中要遵循哪些原则
1、最关键的,UI层只能作为一个外壳,不能包含任何业务逻辑(BizLogic)的处理过程;
2、设计时应该从BLL出发,而不是UI出发. BLL层在API上应该实现所有BizLogic,以面向对象的方式;
3、不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关;
4、不管使用COM+(Enterprise Service),还是Remoting,还是WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通过负载均衡作集群。
(6)数据访问层设计扩展阅读
各层的作用:
1、数据访问层:主要是对非原始数据的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提旦核笑供数据服务。
2、业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处氏迅理,如果说数据层是积木模含,那逻辑层就是对这些积木的搭建。
3、界面层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
‘柒’ Spring 中的Dao的用处
DAO其实是一个樱族橡数据访问层的设穗激计机制,并不一定非要在Spring中,在各种框架的系统中,都可以用DAO来简称数据访问层。这层设计,可以灵活的要脊旁你访问各个数据库数据,缓存数据,检索数据,提供了各种方法。程序员几乎只要关注业务模块中间层的设计,数据库这块几乎处于一种托管状态。以后系统移植,升级啊,集成其他系统啊,都很方便。维护成本降低很多。
‘捌’ C#三层架构
C#三层架构
C# 三层架构包括业务逻辑层、数据访问层和数据库层。其实现关键在于业务逻辑层和数据访问层的需求分析和设计。一个良好设计的业务逻辑层,直接反映在用户界面上,功能使用、使用简卖盯单;一个具有良好设计的数据访问层使得业务逻辑层的实现过程快速简捷,同时因为封装了对底层数据库的访问而使整个系统层次分明,型键易于扩展。
建立一个公用类库来封装对数据库记录的访问,不但使得访问信息更卜配巧快速、方便和安全,也使得整个程序的架构更加清晰,有利于代码维护、二次开发,具有良好的可读性和可扩展性。
‘玖’ 信息系统的三层结构分别是
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
各层的作用
具体的区分方法
1:数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。
2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。
3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
表示层
位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层
业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计尺携时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演罩纯了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
编辑本段优缺点优点1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间
缺点1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
1:数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
2:业务陵闷伏逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
‘拾’ 什么是典型的软件三层结构软件设计为什么要分层软件分层有什么好处
1、表示层:通俗讲就是展现给用户的界面,即用户在使用一个系统的时历穗歼候他的所见所得。 2、业务逻辑肢冲层:针对具体问题的操作,也可以说是对数据层的操作对数据业务逻辑处理。 3、数据访问层:该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
1、分层设计允许你分割功能进入不同区域。换句话说层在设计是就是逻辑组件的分组。例如:A层可以访问B层,但B层不能访问A 层。
2、用分层的方法以提高应用程序的可维护性并使其更容易扩展,以提高性能族兄。