`

[转]三层架构总结

阅读更多
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
        分散关注、松散耦合、逻辑复用、标准定义
基于组件的三层B/S结构概述
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层。
表示层
位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面
业务逻辑层
业务逻辑层(Business Logic Layer)它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下 的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖 也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设 计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。
数据层
数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。
简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。

MVC和三层架构的异同点
相同的地方在于他们都有一个表现层,不同的地方在于其他的两个层
MVC--->V即View.是视图的意思。C即Controler.是控制器的意思。而M即Model,是模型的意思。
Controller
在 Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet 管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M 之间转来转去。
Model
在Java Web里说的是JavaBean,JavaBean有比实体类更丰富的定义,在 JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所 有对象,这和实体类完全是两回事。所以,我认为在MVC中。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发 不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。
再说三层架构和MVC的区别。在三层架构中没有定义 Controler的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。 当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。不一样的概念。虽然名字一样。

对于MVC
基本原则:业务逻辑代码应该写在 M 里面,而应用程序逻辑应该写在 C 里面。V 只是单纯的展示数据。

举个简单例子吧:用户往购物车添加一个商品

用户点击商品的“添加到购物车”按钮,引起一次请求。服务器开始处理该请求,过程:
1、检查当前用户是否有权限(比如是否已经登录、用户帐户状态、是否可以购物等)
2、检查要添加的商品ID是否有效、
3、检查要添加的商品库存是否足够
4、将商品加入购物车,并保存购物车状态
5、反馈信息

这上述流程中:
1: 是应用程序逻辑(一般由框架实现):因为和“添加商品到购物车”这个业务没有直接关系
2: 业务逻辑:不能购买不存在的商品,这是业务进行的基本条件
3: 业务逻辑:商品库存决定了是否可以购买此商品,这是业务进行的基本条件
4: 业务逻辑
5: 应用程序逻辑

有深刻理解了再继续添加吧。不对的,别只拍砖不指点啊
分享到:
评论

相关推荐

    ASP.net三层架构总结

    ASP.NET三层架构是一种常见的软件设计...总结,ASP.NET三层架构为开发高质量、可维护的Web应用程序提供了一个强大而灵活的框架。通过学习PetShop这个示例,开发者可以更好地理解如何在实际项目中应用和实践三层架构。

    C#三层架构个人总结

    C# 三层架构个人总结 C# 三层架构是一种常见的软件架构模式,旨在将应用程序分层処理,以提高代码的可维护性、可拓展性和可重用性。该架构模式将应用程序分为三层:UI 界面层、BLL 业务逻辑层和 DAL 数据访问层。 ...

    学习体会之asp.net三层架构总结与实例

    例如,“asp.net三层架构总结与实例.docx”文档可能详细解释了如何在这一层中定义和实现业务对象及服务。 3. 数据访问层:主要任务是与数据库进行交互,包括数据的查询、添加、删除和修改等操作。在ASP.NET中,可以...

    三层架构设计

    总结来说,三层架构设计是现代软件架构中的一项革命性思想,它不仅提高了软件系统的整体质量,还为软件开发带来了更高的效率。通过将系统分解成不同的层次,每一个层次都承担起自己独特的责任,开发者可以在各自的...

    Vb.net三层架构

    总结来说,VB.NET中的三层架构是一种高效且灵活的开发模式,它将应用分解为表示、逻辑和数据三个独立的部分,从而提高代码的可读性、可维护性和可扩展性。对于新手而言,理解并掌握三层架构的概念和实践,能够为他们...

    三层架构小案例(包含类图)

    总结来说,三层架构是一种有效的方式,将复杂的应用程序分解为独立的组件,便于维护和扩展。使用VS2012和SQL2008R2,我们可以构建出高效、可维护的系统,而类图则帮助我们更好地理解和设计系统结构。在压缩包中的...

    六层架构 三层架构 C# 抽象工厂应用 实例

    这种模式在六层架构或三层架构中尤其有用,因为它可以灵活地更换或扩展不同的组件,例如在不同的数据库之间切换或更改UI框架。 举个实例,假设我们正在开发一个电商系统,六层架构下,表现层负责展示商品信息,业务...

    三层架构实现注册功能

    总结来说,利用三层架构实现注册功能,需要分别设计并实现表现层、业务逻辑层和数据访问层,确保各层职责分明,同时利用SQL Server数据库进行数据存储。通过这种方式,我们可以构建出稳定、易于维护的注册系统。

    jsp-mysql三层架构模板

    **JSP-MySQL三层架构模板详解*...总结,基于JSP和MySQL的三层架构模板为开发者提供了一个清晰的框架,便于构建和维护Web应用程序。理解并熟练掌握每一层的功能及其相互间的关系,对于高效开发高质量的Web应用至关重要。

    .NET三层架构简单例子(登录和注册功能)

    总结来说,这个".NET三层架构简单例子"展示了如何组织代码以实现登录和注册功能,通过分离关注点,使得每个层只关心其特定的任务,从而提高代码的可读性和可维护性。对于初学者,这是一个很好的起点,可以帮助理解...

    C# WinForm三层架构的搭建

    ### C# WinForm三层架构搭建详解 #### 一、引言 C# WinForm三层架构是一种常见的软件设计模式,它将应用程序分为表示层(UI层)、业务逻辑层(BLL层)和数据访问层(DAL层)。这种架构有助于提高系统的可维护性、可...

    面向对象三层架构例子

    总结来说,"面向对象三层架构例子"是一个典型的软件工程实践,它通过分离关注点,提高了软件的可维护性和可扩展性。商场收银系统的实现,涵盖了从用户界面到数据库的完整流程,是学习和理解三层架构的实用案例。

    c#三层架构总结.ppt

    在C#编程中,三层架构是一种常见的设计模式,它将应用程序分为三个主要部分:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种架构有助于提高代码的可...

    三层架构的代码

    总结,"三层架构的代码"描述的是一个基于三层架构设计的应用程序,其中包含表现层、业务逻辑层和数据访问层,可能用于处理与学生管理相关的一系列操作。通过这样的架构,开发者可以创建出可维护、可扩展且易于测试的...

    基于c#的asp.net三层架构的博客系统

    总结起来,这个项目展示了如何利用C#和ASP.NET构建一个具备完整功能的博客系统,通过三层架构实现了业务逻辑、数据操作和用户交互的分离。这种设计不仅有助于团队协作,还为未来的系统升级和维护提供了便利。在实际...

    三层架构.doc

    总结来说,三层架构和MVC模式各有侧重点。三层架构适用于整体项目架构设计,强调各层的职责分离,提高系统稳定性和可扩展性;而MVC模式是特定于表示层的一种设计模式,主要用于改善用户体验和代码组织。在实际项目中...

    PetShop三层架构说明

    总结来说,PetShop的三层架构是一个很好的学习资源,它展示了如何在实际项目中应用软件设计原则,如分层、接口隔离和单一职责。对于想要提升.NET开发技能,尤其是理解和应用三层架构的开发者来说,深入研究PetShop的...

    标准三层架构示例(源码)_三层架构示例_

    总结来说,这个"标准三层架构示例(源码)"是一个很好的学习资源,它可以帮助开发者深入理解.NET Web应用程序的开发流程,掌握C#编程和SQL Server数据库的结合使用,以及如何构建一个健壮且易于维护的三层架构系统。

    Java Web三层架构的配置详解

    总结来说,Java Web三层架构的配置涉及到多个层面,从表现层的请求映射到业务逻辑层的服务定义,再到数据访问层的数据库配置。理解并正确配置这些元素对于开发出高效、稳定且易于维护的Java Web应用至关重要。初学者...

Global site tag (gtag.js) - Google Analytics