MVC和普通三层架构的区别

MVC和普通三层架构的区别

其中这里的模型(Model)和视图(View )是完全区别于三层架构中的模型(Model)和视图(View)的。

MVC

1)MVC中的模型(Model)指的是数据模型,用于封装与应用程序的业务逻辑相关的数据,除此之外还可以封装数据的处理方法(相当于业务逻辑)。这是完全区别于三层架构的模型层(Model)的。

MVC中模型(Model)的特点:

①有对数据直接访问的权利,如:对数据库的访问;

②模型(Model)“不依赖”视图(View)和控制器(Controller),即模型(Model)不关心它会被如何显示或者如何被操作;

③模型(Model)中数据的变化一般会通过一种刷新机制被“公布”;

④为了实现③中的“机制”用于监视此模型的视图必须事先在此模型上注册。从而,视图可以了解在数据模型上发生的改变。

2)视图(View),这里的视图基本跟三层中的视图一样,都是为了显示数据,没有程序上的逻辑。为了实现视图上数据的刷新,视图(View)需要访问它监视的模型(Model),所以应该事先在被它监视的数据那里进行注册。

3)控制器(Controller),这个概念是在三层中不存在的概念。它主要起到不同层面的组织作用,用于控制应用程序的流程。主要处理事件并作出相应。“事件”主要包括:用户的行为和数据的改变。

普通的三层架构(BLL,DAL,Model)

1)实体(Model),用来创建对象的实体;

2)业务逻辑层(BLL),用来处理复杂的数据间的关系或者是业务间的关系;

3)数据库访问层(DAL),用来用来访问数据库的;

当然还会有,View(视图层),用来展示数据;

C# 普通三层架构举例:

引用关系:

BLL引用DAL和Model

 DAL 需要引用Model

 

Model是实体,不引用

调用流程顺序:

BLL(Model)-->DAL(Model)-->DbHelperSQL来执行语句

调用顺序:创建一个BLL.Users的对象和一个Model.Users的对象

对Model.Users的实体赋值

……

赋值完成后,调用BLL.User的add方法

到达BLL.Users

需要创建一个DAL的对象 ,添加一条数据为例  使用BLL

到BLL.Users的add方法传递到DAL.Users的Add方法

 DAL.Users的Add方法组合成sql语句最后调用DbHelperSQl执行这条语句

 最后在DAL里完成了sql语句的拼接和调用DbHelperSQL的执行SQL语句方法完成操作

 这里编写了一个简单的三层结构,数据库使用的是MySQL

C#简单三层结构设计UI、BLL、DAL

原文地址:https://www.cnblogs.com/JiYF/p/6594720.html