三层架构和MVC模型的常识

一、三层架构:
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对详细问题的操作。也能够说是对数据层的操作。对数据业务逻辑处理。
3、数据訪问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、改动、查找等。



长处

1、开发者能够仅仅关注整个结构中的当中某一层。
2、能够非常easy的用新的实现来替换原有层次的实现;
3、能够减少层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。

6、结构更加的明白
7、在后期维护的时候。极大地减少了维护成本和维护时间

缺点

1、减少了系统的性能。这是不言而喻的。假设不採用分层式结构。非常多业务能够直接造訪数据库,以此获取对应的数据,现在却必须通过中间层来完毕。
2、有时会导致级联的改动。这样的改动尤其体如今自上而下的方向。假设在表示层中须要添加一个功能,为保证其设计符合分层式结构,可能须要在对应的业务逻辑层和数据訪问层中都添加对应的代码。
3、添加了开发成本。


二、MVC:
MVC模式(Model-View-Controller)是软件project中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

  • (控制器Controller)- 负责转发请求。对请求进行处理。
  • (视图View) - 界面设计人员进行图形界面设计。
  • (模型Model) - 程序猿编敲代码应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(能够实现详细的功能)。

对于三个层次更具体的解释:
  • 模型(Model) 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接訪问的权力。比如对数据库的訪问。“模型”不依赖“视图”和“控制器”,也就是说。模型不关心它会被怎样显示或是怎样被操作。可是模型中数据的变化通常会通过一种刷新机制被发布。为了实现这样的机制,那些用于监视此模型的视图必须事先在此模型上注冊,从而,视图能够了解在数据模型上发生的改变。(比較:观察者模式软件设计模式))
  • 视图(View)可以实现数据有目的的显示(理论上,这没必要的)。

    在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图须要訪问它监视的数据模型(Model)。因此应该事先在被它监视的数据那里注冊。

  • 控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。

    “事件”包含用户的行为和数据模型上的改变。


MVC的长处:
      1、首先。多个视图能共享一个模型。

在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型能够被不同的视图重用,所以大大提高了代码的可重用性。

2、其次,控制器是自包括(self-contained)指高獨立內聚的物件,与模型和視圖保持相对独立,所以能够方便的改变应用程序的数据层和业务规则。

MVC和三层架构的差别:
相同是架构级别的,相同的地方在于他们都有一个表现层,可是他们不同的地方在于其它的两个层。
在三层架构中未定义Controller的概念。这是最不同的地方。而MVC也没有把业务的逻辑訪问看成两个层,这是採用三层架构或MVC搭建程序最基本的差别。当然了。在三层中也提到了Model。可是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的。而MVC里。则是由业务逻辑与訪问数据组成的。
原文地址:https://www.cnblogs.com/wgwyanfs/p/6844973.html