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