Heim  >  Artikel  >  Backend-Entwicklung  >  YY面试,对MVC框架M层的理解,求指导

YY面试,对MVC框架M层的理解,求指导

WBOY
WBOYOriginal
2016-06-23 13:46:51840Durchsuche

根据我的理解,平时用来处理数据的方法,我把它封装成类,以后遇到同样的数据处理我就调用这个类,这个类属于M层,处理数据。

面试官问我:
我们抓取网页有这么几步
1.根据URL抓取网页
2.正则表达式处理html元素
3.将抓取到的内容存入数据库

以上这三部哪一步处于M层?

我觉得三步都属于啊。
求大家指导我的理解是否有错,错在哪里,拜托了~
如果上面三步哪一步不是M层,那它属于MVC的哪一层??


回复讨论(解决方案)

个人觉得第3部属于m层.
因为第3部进行了数据库的查询.

第一步是不是有可能属于C层?这个要看项目的定义了。

3必然是 12可算可不算吧 我理解
首先3是对数据库的直接操作,肯定是一个通用性非常强的底层接口
2也可以算M,针对XX网站做的处理,来源于该网站的html都可以调用
1照样可以是M,无非是在2的基础上增加了一个curl抓取,url作参数而已

我觉得1.2属于业务逻辑层,3是数据层

明显3,对数据的操作

1 是控制层  3是处理数据层 我是这么理解

只有3是,1,2是控制层

第三步,m是数据处理层,当然你应用逻辑也可以写在m层,只不过很不规范。
正确的mvc架构应该让c层尽可能少的处理数据逻辑,而让m来处理,否则mvc的最大优点--代码模块化的优势就体现不出来了。
仅供参考!

MVC架构根本就没有准确定义,面试官水平不够或者故弄玄虚吧。
V是用户视角
C是业务视角
M是功能视角
三者本来就是一起合作完成任何一个功能的。抓取网页的话,对资源的请求一般写在M里。
正则表达式分析HTML这个,C和M都说得过去。在M里写好方法,C里调用是个比较好的结构。
数据库操作肯定是M,因为很多框架里,M就剩下访问数据库了。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn