问题描述
- NET MVC和三层的数据层是否可以一起使用,用法区别?
-
请问MVC模式结合三层框架怎么实现啊?
MVC的model和数据持久层可以并用吗?
解决方案
数据持久层用M就行。
如:hibernate 只是作为数据持久化框架使用,作为MVC中的M(module)来使用,通过ORM映射将表映射成对象,通过对映射出的对象的操作来改变表,仅作为MVC的一部分
解决方案二:
三层是三层,MVC是MVC,它们毫无关系的。
三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。
三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑。
比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。
MVC是在应用程序(BS结构)的视图层划分出来的不同功能的几个模块。
MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。
只所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。
解决方案三:
看你怎么理解这个“可以”如果你为了完成功能,没有什么是不可以的。既然你不用三层和mvc都可以交差,用了自然也可以。如果在这个层面上讨论问题我说服不了你。
但是如果你不是糊差事,你想问的是最佳实践,那么我可以给你一些建议。比如说无论你用不用多层,你都应该把数据库表结构相关的"model"和和视图相关的"model"解耦,这样做的好处很容易理解,往往相同的数据要应用到不同的视图,有时候单一的视图需要多个表的数据。我们把视图中的model叫做ViewModel。