MVC和三层,我的一个不成熟的看法,大家批批

  这里说的MVC指的是设计模式里的MVC不是asp.net mvc。

  既然MVC是一种设计模式,那么他就应该在任何地方都可以使用。比如三层。

  有人说MVC里的V相当于三层里的UI,M相当于三层里的DAL + BLL。这么理解也不错,因为设计模式可以应用在任何地方,这么理解是完全可以的。但是我有另一种理解,大家看看对不对。

  我觉得在UI层里面也可以使用MVC设计模式。请注意仅仅只在UI层里。还是用一个实例来说明吧,我不擅长讲原理。

  假设我们要显示博客园的首页,再缩小一下范围,我们要实现首页的里博文列表。美工做出来的html是这样的(代码一),那么这个是不是V呢?

  下一步,我们要把数据库里的数据填充上。我们再来定义一个json(代码二),那么这个是不是M?准确的说是M的一部分。

  然后我们要把html和数据合在一起,我们可以写一段js(代码三)来实现。那么这段js是什么呢?这个我也有一些犹豫,不知道是属于M还是应该属于C。暂且先放在这里。

  这些东西如何配合工作呢?我们再写一段js(代码四)。

  这个可以说是C,没有什么问题吧。页面加载后触发,加载V,加载M,调用代码三,把html和数据合在一起。

  那么我上面说的这些是不是应用了MVC设计模式呢?这个我还真不敢确定。如果你说,这些都是三层里的UI,那么我同意。不过如果你说这些都是MVC里的V,那么我就不同意了。呵呵。

  刚刚学习jQuery,js的底子也比较烂,所以代码比较惨不忍赌了,希望能够把我的意思表达出来,大家多多包涵。

代码一:

<div class="post_item">
    <div class="digg">
        <div class="diggit"> 
            <span class="diggnum" id="digg_count_{id}">{顶的数量}</span>
        </div>
        <div class="clear"></div>    
        <div id="digg_tip_{id}" class="digg_tip"></div>
    </div>      
    <div class="post_item_body">
        <h3><a class="titlelnk" href="{随笔url}" target="_blank">{标题}</a></h3>       
        <p class="post_item_summary">
            <a href="{作者url}" target="_blank"><img align="left" class="pfs" src="{作者头像}" alt=""/></a>  
            {随笔简介}</p>       
    <div class="post_item_foot">        
    <a href="{作者url}" class="lightblue">{作者昵称}</a> 
    发布于 {发表时间} 
    <span class="article_comment"><a href="{随笔url}#commentform" title="最新评论时间:{最新评论时间}" class="gray">
        评论(<span id="feedback_count_2042255">{评论数}</span>)</a></span> 
    <span class="article_view"><a href="{随笔url}" class="gray">
        阅读(<span id="viewcount_2042255">{阅读次数}</span>)</a></span></div>
    </div>
    <div class="clear"></div>
</div>

代码二:

var bolg = {
["标题":"";"随笔URL":"";其他省略……],
["标题":"";"随笔URL":"";其他省略……]
}

代码三:

var 模板 = "";//就是上面那段html
var div = replace(模板,"{标题}",bolg[0].标题);
//也可以用其他的方法实现,目前我只会替换。当然还要写个循环,这里就省略了。

代码四:

$(document).ready(function(){
$.ajax({
type: "GET",
url: "blog.ashx",//获取数据
success: function(msg){
//调用第三段代码,显示数据
}
}
});

ps:

刚刚看到了 Leepy 写的 谈谈对于企业级系统架构的理解  很是佩服,不知道我这里说的,是不是他说的UI逻辑。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链

XSS攻击——每周小讲堂

我们从一个很蠢的例子开始。 假设网站上有一个很简单的输入框,如果输入123并提交,就会保存并显示在url上。 比如现在填一段JS代码字符串并提交,就会得到一个包...

2046
来自专栏用户2442861的专栏

Python安装模块出错解决的办法(pip相关的安装)

然后在cmd进入命令行窗口, 进入ez_setup.py目录,我这里是下载放置在F盘,然后输入命令:python ez_setup.py 系统就会自动下载se...

4393
来自专栏简书专栏

基于Excel2013的数据导入

Excel2013下载网盘链接: https://pan.baidu.com/s/1MdF2pTxlJqZMqILcW2PeBA 密码: rxuv 这个安装包...

2472
来自专栏腾讯NEXT学位

React 16 加载性能优化指南(上)

公司的新项目迁移到了 React 16 和 Webpack 4.0,写一篇文章来总结一下。

7025
来自专栏雨过天晴

转 树莓派无显示器安装系统

1762
来自专栏睿哥杂货铺

Linux 性能诊断:负载评估

从load avgerage等总括性的数据着手,参考CPU使用率和I/O等待时间等具体的数字,从而自顶向下快速排查各进程状态。

29510
来自专栏我的博客

PHP采集原理

很多时间我们的信息都是来自其他网站,这样我们复制,粘贴,发布很麻烦,当然你不可以把他们的信息批量复制过来,这个时候就需要采集了~~ 采集就是使用file_get...

3442
来自专栏FreeBuf

方程式组织DanderSpritz工具测试环境研究

DanderSpritz是NSA泄露的一款著名的界面化远控工具,由于其功能强大因此也成为了许多安全人员争相研究的对象。但在实际测试过程中,由于缺少说明文档,所以...

1344
来自专栏落影的专栏

iOS开发笔记(五)

前言 社会的模式很多是重复的,当你做一样事情很擅长时,与之类似的事情也能触类旁通。 正文 Code开发 1、delegate的trick 很多人习惯在调用de...

4994
来自专栏小樱的经验随笔

BugkuCTF sql注入

1503

扫码关注云+社区

领取腾讯云代金券