三层与Entity

          在学习三层的过程中,有一个问题让我很郁闷,就是为什么偏偏是三层,而不是二层或者四层,查阅了资料知道,不是二层是因为那样就会出现高度耦合的问题,而不是四层是因为实体类(Entity),它仅仅可以用作一种方法,没有它系统照样可以工作,有了它可以更加方便工作。

       下面先来用一个生活中的例子来理解一下:

        

          UI层(淘宝):日常生活中我们会在淘宝上买东西,我们需要什么东西,就会加入购物车,这个时候就将所需的数据传给了B层,也就是形成了订单。这一层来接受B层的订单详情,也就是用户通过淘宝网知道自己买的东西到了哪里。这就是界面层。

          B层(订单):客户将数据提交后,在订单中进行处理,判断,如是否有该商品,是否有少填东西,所有都坚持无误后,将数据传给D层,即商家。D层将发货信息传递给该层。这就是业务逻辑层。

          D层(商家):商家接受到有B层传来的数据后,开始在自己的商店中找对应所需要的物品,找到后开始进行发货,同时将物流信息返回到B层,即我们熟知的订单详情。这就是数据访问层。

         Entity(实体类):它不属于任何一层,也可以叫做公共层(“大众情人”),上面的三层都需要用到这个类,它用于在各个层之间进行数据的传递。

         那么为什么要用实体类呢?

         实体类,即数据表的映射,数据库中DatsSet 不具备OO的优点, 实现数据检索繁琐,易出错, 使数据结构暴露在业务逻辑层和表现层,因此使用实体类在各个层之间进行传递,它符合面向对象的抽象封装思想,如果程序需要改动,只需要改动实体类,方法间调用接口,符合面向对象接口不变。

        那么应用三层有什么作用呢?它的优缺点是什么?

         三层的作用:符合“高内聚,低耦合”的思想,但不是处处都要想三层,有时候一个简单的系统用了三层往往会使问题复杂化。

          优点:                

          1、开发人员可以只关注整个结构中的其中某一层;  
                  2、可以很容易的用新的实现来替换原有层次的实现;   
                  3、可以降低层与层之间的依赖;   
                  4、有利于标准化;   
                  5、利于各层逻辑的复用。
      缺点:
          1、降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据。   
          2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
时间: 2025-01-20 16:42:44

三层与Entity的相关文章

三层架构(一)——什么是三层架构?

 一.什么是三层架构?   1.概念   三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低耦合"的思想.    分层(tier) 概念 表现层(UI) 通俗讲就是展现给用户的界面,用于显示数据和接受用户输入的数据:即用户在使用一个系统的时候他的所见所得. 业务逻辑层(BLL) 针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理.是表

三层结构ASP.NET程序中,把实体类自动显示在页面上的例子(c#)

asp.net|程序|显示|页面 在这里我们假设这样一个场景:在一个三层bs系统(asp.net)中有一个实体类Student,包括Name,Age两个字段.现在需要把这个实体类的数据显示在一个StudentInfo.aspx页面上,StudentInfo.aspx中有两个文本框:StudentName(用来显示Student.Name)StudentAge(用来显示Student.Age).下面的步骤将通过反射和Attribute来实现自动把Student实体显示在StudentInfo中:1

刘庆峰年会演讲:科大讯飞的三层生态框架是如何建成的?

雷锋网按:近日,科大讯飞董事长刘庆峰在公司年会上发表了演讲,他在演讲中表示,科大讯飞在促成"2016年成为中国人工智能元年"这件事情上,起了领袖性的作用:分析了AI核心技术发展主线和能够改变世界的3要素:并用具体事例论证了"应用才是硬道理"的观点,另外他也介绍了讯飞由内而外的三层生态架构. 以下是刘庆峰演讲全文,雷锋网做了适当删减和修改. 大家下午好! 刚才胡郁代表公司领导班子做了一个非常好的计划和总结,从中可以看到2016年科大讯飞又取得了一个又一个令人欣喜的进展

三层架构详解(服务员-厨师-采购员)

三层架构详解 1,什么是三层? 2,为什么使用三层? 3,三层与以往使用的两层相比有什么不同?它的优势在哪里? 4,如何学好三层?如何应用三层? -- 对于三层我左思右想,如何与实际相联系.好嘛,昨晚突然有了"灵感".还记得大话设计模式里第23章大鸟和小菜吃羊肉串的故事--由在小摊吃到饭店吃引来的一个命令模式(当然今天不是研究命令模式).服务员.厨师.采购员. 这不就是个典型的三层架构吗???(⊙ o ⊙ )啊!哈哈(这个后面再做解释)     先了解:   1,什么是三层? UI(表

Rafy 领域实体框架示例(1) - 转换传统三层应用程序

Rafy 领域实体框架发布后,虽然有帮助文档,许多朋友还是反映学习起来比较复杂,希望能开发一个示例程序,展示如何使用 Rafy 领域实体框架所以,本文通过使用 Rafy 领域实体框架来改造一个传统的三层架构应用程序--"服装进销存"系统,来讲解如何使用 Rafy 领域实体框架进行数据库应用程序的快速开发,以及替换为使用 Rafy 框架后带来的一些新功能. 完整示例包下载地址:http://pan.baidu.com/s/1AB9TL,其中包含本次改造前.改造后的源代码,以及转换说明文档

hibernate如何保存三层结构的数据表

问题描述 hibernate如何保存三层结构的数据表 各位大神,小弟急求!我现在想实现以下功能:学校--班级--学生之间均为一对多的关系,我想实现在保存学校信息的同时能够将班级信息和学生信息均保存.目前代码如下:学校类: @Entitypublic class School { private String id; private String name; private List<Clazz> clazzSet; @OneToMany(mappedBy = ""schoo

初识MVC与三层架构

MVC 即 Model View Controller .mvc是一种很好的设计模式的综合应用.其中 M 即Model(模型层),主要负责处理业务逻辑以及与数据库的交互. V 即View(视图层),主要用于显示数据和提交数据. C 即Controller(控制器),主要用于接受请求并控制请求转发.   三层架构,是最基本的项目分层结果.秉承"高内聚,低耦合"的思想,将整个业务应用划分为:UI层(表示层).BLL(业务逻辑层).DAL层(数据访问层).系统的主要功能和业务逻辑在BLL层进

namespace-三层架构IDAL引用entity的问题

问题描述 三层架构IDAL引用entity的问题 .entity 中部门和机构都有,但是在 .IDAL 中,机构没有问题,但是部门一直显示 .entity中不存在类型或命名空间"部门",两个代码都是相同的.我是新手,求帮忙解答!谢谢! IDAL中部门代码: using OA.entity; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace OA.

ssi框架学习总结(mvc三层架构)_JSP编程

相信大家对于mvc的三层架构已经灰常熟悉了,在这就不细讲了,个人感觉ssi的框架结构还是比较典型的mvc三层架构,还是比较容易上手的.关于这块的入门我想特别感谢下FrankHui童鞋,在他的帮助下,我才能比较快滴熟悉了这个架构,对我学习ssi的框架还是很有帮助滴.ssi的框架主要是由struts2,spring以及ibatis组成,他们负责各层之间的交互与协作,从而实现整个web端的功能实现与整合.Struts目前主要负责数据传递和控制方面,spring则依靠其强大的依赖注入技术实现了类似bea