文章:

谈谈service层在mvc框架中的意义和职责

Model–view–controller - Wikipedia

MVC Architecture - Google Chrome - Chrome: developer

引用:

问题的本质是:业务逻辑粘连了C层和M层,应该从C层&M层解耦出来,成为独立的Service层。由此,在C层可以灵活的替换Service保持高度的简洁,而M层保持职责单一仅仅为Service提供数据,Service层则实现所有复杂的业务逻辑与通用的业务逻辑。

Service层的职责 根据上面的分析,Service夹在C层和M层中间,从逻辑上大致划分为3大类: model侧的Service:也就是封装每个model与业务相关的通用数据接口,比如:查询订单。(我认为:访问远程服务获取数据也应该归属于这一类Service) 中间的Service:封装通用的业务逻辑,比如:计算订单折扣(会用到1中的Service)。 controller侧的Service:基于1、2中的Service进一步封装对外接口的用户业务逻辑,当然也不排斥直接访问DAO而不使用上述2个Service(不建议)。 在实践中,应该会很自然的用到这三类Service,在了解了这些概念之后再进行代码设计,就不会对Service的职责产生困惑了,自然也对MVC有了新的认识。

零散笔记:

  1. 模式是一种可重复使用的解决方案。
  2. MVC 解决的主要问题:代码重用率低、项目难以并行开发。
  3. 在写任何模块的时候,都应该理清处自己的职责(权限)范围,不做多余的事情、不调不该调的 API。小小的“职权”越界会一点点积累起来,结果就是造成代码很混乱。

关于浏览原理:

https://coolshell.cn/articles/9666.html

https://www.jianshu.com/p/cfdf1747d30e

https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/

以及IM框架涵盖的东西也特别多,有空深入去学习一下。

MVC相关资料收集的更多相关文章

  1. AssetBundle机制相关资料收集

    原地址:http://www.cnblogs.com/realtimepixels/p/3652075.html AssetBundle机制相关资料收集 最近网友通过网站搜索Unity3D在手机及其他 ...

  2. FastAdmin 导出 Excel 相关资料收集 (2018-08-14)

    FastAdmin 导出 Excel 相关资料收集 导出 Excel 文件时身份证号变成科学计数法怎么办? https://forum.fastadmin.net/thread/1346 姊妹篇 Fa ...

  3. FastAdmin 导入 Excel 相关资料收集 (2018-08-14)

    FastAdmin 导入 Excel 相关资料收集 新版本一键CRUD后自带导入功能,但是默认被禁用,如何启动 https://forum.fastadmin.net/thread/540 Excel ...

  4. iOS10以及xCode8相关资料收集

    兼容iOS 10 资料整理笔记 源文:http://www.jianshu.com/p/0cc7aad638d9 1.Notification(通知) 自从Notification被引入之后,苹果就不 ...

  5. Spring MVC 相关资料整理

    来源于:http://www.cnblogs.com/ylhssn/p/4062757.html 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即 ...

  6. MPEG 编解码相关资料收集

    以下是我搜集的关于MPEG1/2的编解码相关的资料: (注:mpge帧内编码是基于jpeg编码的,所以请务必先理解jpeg的编解码原理.) 1:Introduction to MPEG 2 Video ...

  7. kafka负载均衡相关资料收集(二)

    [转]关于kafka producer 分区策略的思考 from:http://blog.csdn.net/ouyang111222/article/details/51086037 今天跑了一个简单 ...

  8. kafka负载均衡相关资料收集(一)

    key为null时Kafka会将消息发送给哪个分区? 当你编写kafka Producer时, 会生成KeyedMessage对象. 1 KeyedMessage<K, V> keyedM ...

  9. MongoDB相关资料收集

    MongoDB 入门教程http://www.runoob.com/mongodb/mongodb-tutorial.html .net 驱动程序下载:http://mongodb.github.io ...

随机推荐

  1. PyQt4信号与槽

    事件 事件(Events)是GUI程序中很重要的一部分.它由用户或系统产生.当我们调用程序的exec_()方法时,程序就会进入主循环中.主循环捕获事件并将它们发送给相应的对象进行处理.奇趣公司(Tro ...

  2. mysql数据库LOAD DATA INFILE Syntax

    1.LOAD DATA INFILE用来把一个文本文件里的内容高速写入到MySQL表里,它和SELECT ... INTO FILE的操作是对应的,一个导入.一个导出.使用LOAD DATA INFI ...

  3. postgresql----唯一索引,表达式索引,部分索引

    一.唯一索引 唯一索引字面上理解就是在索引上增加唯一约束,不允许出现索引值相同的行,目前只有Btree索引可以声明唯一索引,唯一键会自动创建唯一索引. 测试表: test=# create table ...

  4. Oracle(四):锁

    v$lock:视图列出当前系统持有的或正在申请的所有锁的情况 v$locked_object:视图列出当前系统中哪些对象正被锁定 1).查询当前数据库锁的情况,以及导致锁的sql语句: Select ...

  5. 借助HTML5 Blob实现文本信息文件下载

    原理其实很简单,我们可以将文本或者JS字符串信息借助Blob转换成二进制,然后,作为<a>元素的href属性,配合download属性,实现下载. 代码也比较简单,如下示意(兼容Chrom ...

  6. POJ 2240 Arbitrage【Bellman_ford坑】

    链接: http://poj.org/problem?id=2240 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  7. python redis基本概念简单操作

    转自:http://www.cnblogs.com/melonjiang/p/5342383.html 一.redis redis是一个key-value存储系统.和Memcached类似,它支持存储 ...

  8. WebSocket client for python

    Project description websocket-client module is WebSocket client for python. This provide the low lev ...

  9. python sort、sorted高级排序技巧(转)

    add by zhj: 没找到原文.可以按多个维度进行排序,而且可以指定他们的排序方向,如果维度都是数字,排序比较容易,用+/-号就可以 指定排序方向.否则,就调用多次sorted进行排序了,而且要按 ...

  10. Day02 html回顾和CSS介绍

    昨天内容回顾     1.html的操作思想         ** 使用标签把要操作的数据包起来,通过修改标签的属性值来实现标签内数据样式的变化         *** <font size=& ...