专栏首页更流畅、简洁的软件开发方式MVC和三层,我的一个不成熟的看法,大家批批

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 条评论
登录 后参与评论

相关文章

  • 自然框架的声明

    1、 自然框架是由控件、类库、思路构成的,他不是生成器! 2、 自然框架不是平台。 3、 自然框架不想干掉写代码的程序员,而是想把大家从繁复的代码中解脱出来,把...

    用户1174620
  • 发布一个锁定行列的一种方法。(实现Excel里的冻结窗格的功能)

    功能介绍:     可以实现锁定表格的行和列的功能,效果和Excel里的冻结窗格类似,当然没有Excel那么强大了,只是类似。 问题:     当一个t...

    用户1174620
  • 商品的扩展属性及相关——开篇说在前面大纲

      其实早就想写这方面的了,只是由于各种原因一直拖到现在。终于开始动笔了。另外过了这么多年了,也不知道这种做法是否已经过时了。

    用户1174620
  • 前端进阶之路: 前端架构设计(1)-代码核心

    可能很多人和我一样, 首次听到"前端架构"这个词, 第一反应是: "前端还有架构这一说呢?" 在后端开发领域, 系统规划和可扩展性非常关键, 因此架构师备受重视...

    前端博客 : alili.tech
  • flask第35篇——模板项目实战(一)

    上面代码综合了之前学过的知识,包括:flask for 循环、set模板赋值其余都是前端的内容,这里不做过多的阐述。

    用户2149234
  • Django+xadmin打造在线教育平台(七)

    代码 github下载 十、授课教师  10.1.讲师列表页 拷贝teacher-list.html和teacher-detail.html到template...

    zhang_derek
  • 搭载麒麟 970的华为 Mate 10,带给我们多少人工智能方面的惊喜?

    AI科技评论消息,北京时间10月16日,华为 Mate 10 在德国慕尼黑发布。作为华为2017年的旗舰系列,其中,Mate 10 4GB+64GB 的售价为 ...

    AI科技评论
  • 编程范式粗讲

    编程范式(Programming paradigm)指计算机编程的基本风格或典型模式。

    三毛
  • 刚刚,在韩国上演的北京8分钟,中国首次用AI展示国家形象

    李根 发自 SSJQ 量子位 报道 | 公众号 QbitAI ? 时隔14年后,奥林匹克再次进入北京时间。 刚刚结束的平昌冬奥会闭幕仪式上,张艺谋和团队用8分...

    量子位
  • 人类医生的终结者:深度学习医疗2016-17两次大突破

    【新智元导读】南澳大学医学专家 Luke Oakden-Rayner 发表了一系列博客文章,讨论机器会不会在短时间内取代人类医生,他总结出了医疗AI领域的 6 ...

    新智元

扫码关注云+社区

领取腾讯云代金券