DRP学习进化模型
曾经做的就是按照思维做的三级制,这是U 。B ,D 。坐在坐,开始增加设计模式,增加sqlhelper ,逐渐了解系统可分为只三层,层的,随着学习的不断深入明确了“为什么会出现分层”。知道了是一回事,关键还是在“怎么用”,所以我们还在为“分层”而进行不懈的努力着……
如今学习到了DRP。又认识了一个分层:MVC(model-view-control)。
正式语言这么描写叙述:用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同一时候。不须要又一次编写业务逻辑。对于有系统经验的朋友们,对这些描写叙述是深有感悟。
以下我们来简单看一下这个模型的始末。
一、MVC 的前身
一个非常easy的调用,从前端到JSP到业务逻辑。
图中能够看出它的长处:结构简单,easy操作。
再看第二眼:锁定JSP 。1、取得页面參数,
2、调用业务逻辑。
3、到返回数据
4、渲染页面
5、将渲染结果response 给前端页面
假设要给JSP职责分类的话,1~3,是一致的。那么4 (渲染页面)就显得格格不入,由于,我们有前端,这个JSP既有“业务逻辑处理”,又有“页面处理”,这在三层中。该属于U,B 混搭了。
所以他的缺点就是: 职责不单一,责任过重,不便于维护。可是这个适合小型项目的开发。
不论什么分层思想都是一样的,就是为了“职责单一。便于管理”,这里既然分层不彻底。那么就又一次分呗。有了MVC。
二、MVC
这个图就攻克了“混搭”的问题,相对于刚才那个,这个模型适合大型项目开发。
通过引入Servlet 来分担JSP中调用“业务逻辑”的功能。让JSP 仅仅做“渲染页面”来实现页面和业务逻辑的排排站。
这里做到了前端和业务逻辑的分离,可是之前我们说了,一个系统不止有“x”层,我们所熟知的“层”。是通用的写好的一种规范,在实际中,我们能够依据业务须要在“已知层”上进行抽象。包装属于“系统”的层。
接下来要说的仅仅是在MVC的基础上加一个“数据訪问”的层。当然。这个不属于某一个系统独有。基本全部的系统都会涉及到数据库的訪问,和数据库连接的驱动分,方法等基本都是一致的。所以能够封装成一层,作为“持久层”。
一般持久层的使用都会和DAO配合,在DAO中使用了“工厂模式”,封装创建过程。
在持久层的设计中有几个重要的原则:细粒度————细粒度的目的是为了达到高复用性。
:要单纯————不涉及或者非常少有过多的业务逻辑。
一步一步进化的模型,就是一种思想的演变。有一种思想非常重要。行动上要懒惰,思想上要积极。为了自己能够在行动上懒惰,而发动思维运动,这就是“代码复用”。
版权声明:本文博主原创文章,博客,未经同意不得转载。
DRP学习进化模型的更多相关文章
- .NET MVC学习之模型绑定
ASP.NET MVC学习之模型绑定(2) 继ASP.NET MVC学习之模型绑定继续 3.手工调用模型绑定 很多情况下我们都是通过形参的方式接收来自http流中的数据,这看似是完美的,但是缺少了 ...
- PlaNet,使用图像输入来学习世界模型
Google AI团队与DeepMind合作,上周宣布了一个名为PlaNet的新的开源“Deep Planning”网络. PlaNet是一个人工智能代理,它只使用图像输入来学习世界模型,并使用这些模 ...
- ASP.NET MVC学习之模型验证详解
ASP.NET MVC学习之模型验证篇 2014-05-28 11:36 by y-z-f, 6722 阅读, 13 评论, 收藏, 编辑 一.学习前的一句话 在这里要先感谢那些能够点开我随笔的博友们 ...
- NVIDIA GPUs上深度学习推荐模型的优化
NVIDIA GPUs上深度学习推荐模型的优化 Optimizing the Deep Learning Recommendation Model on NVIDIA GPUs 推荐系统帮助人在成倍增 ...
- 学习世界模型,通向AI的下一步:Yann LeCun在IJCAI 2018上的演讲
https://baijiahao.baidu.com/s?id=1606296521706399213&wfr=spider&for=pc 机器之心整理,机器之心编辑部. 人工智能顶 ...
- ASP.NET MVC学习之模型验证篇
一.学习前的一句话 在这里要先感谢那些能够点开我随笔的博友们.慢慢的已经在博客园中度过一年半了,伊始只是将博客园作为自己学习的记录本一样使用,也不敢将自己的随笔发表到博客园首页,生怕自己的技艺不高,反 ...
- ASP.NET MVC学习之模型绑定(2)
3.手工调用模型绑定 很多情况下我们都是通过形参的方式接收来自http流中的数据,这看似是完美的,但是缺少了很多过程中的控制,所以我们就需要使用手工的方式进行绑定.下面我们通过一个例子来说明,首先打开 ...
- ASP.NET MVC学习之模型绑定(1)
一.前言 下面我们将开始学习模型绑定,通过下面的知识我们将能够理解ASP.NET MVC模型的模型绑定器是如何将http请求中的数据转换成模型的,其中我们重点讲述的是表单数据. 二.正文 1.简单类型 ...
- Asp.net MVC4高级编程学习笔记-模型学习第四课基架与模型绑定20171027
MVC模型 一.构建基架. MVC中的基架可以为应用程序提供CURD各种功能生成所需要的样板代码.在添加控制器的时候可以选择相应的模板以及实体对象来生成相应的模板代码. 首先定义一个模型类如下所示: ...
随机推荐
- Android - 支持不同的设备
世界上有各种不一样形状和大小的Android设备.由于有各种不同类型的设备,你的app可能在各种设备上运行.为了在Android上尽可能的成功,你的app需要使配各种不同的设备.最重要的几点需要考虑的 ...
- FileZilla 错误425 Can't open data connection 读取目录列表失败
新装FileZilla FTP Server,设置好后,客户端能连接,但是出Error:[读取目录列表失败]:同时,服务端出Error:[425 Can't open data connection] ...
- Centos6.5下一个Ceph存储集群结构
简单的介绍 Ceph的部署模式下主要包括下面几个类型的节点 • Ceph OSDs: A Ceph OSD 进程主要用来存储数据,处理数据的replication,恢复,填充.调整资源组合以及通过检查 ...
- 【SSH进阶之路】一步步重构容器实现Spring框架——彻底封装,实现简单灵活的Spring框架(十一)
文件夹 [SSH进阶之路]一步步重构容器实现Spring框架--从一个简单的容器開始(八) [SSH进阶之路]一步步重构容器实现Spring框架--解决容器对组件的"侵入 ...
- SplashScreenDemo
对Java应用最常见的抱怨就是启动时间太长.这是因为Java虚拟机花费一段时间去加载所有必需的类,特别是对Swing应用,它们需要从Swing和AWT类库代码中去抽取大量的内容. 用户并不喜欢应用程序 ...
- HDU 4430 & ZOJ 3665 Yukari's Birthday(二分法+枚举)
主题链接: HDU:pid=4430" target="_blank">http://acm.hdu.edu.cn/showproblem.php?pid=4430 ...
- CodeForces 482C Game with Strings
意甲冠军: n一定长度m串 隐藏的字符串相等的概率 然后,你猜怎么着玩家隐藏的字符串 的询问字符串的一个位置 再不断的知道一些位置后 游戏者就能够确定藏起来的串是什么 问 游戏者的期望步 ...
- ZOJ 3795 Grouping(Tarjan收缩点+DAG)
Suppose there are N people in ZJU, whose ages are unknown. We have some messages about them. The i-t ...
- SQL入门学习5-函数、为此、CASE表达式
6-1. 各种各样的函数 函数的种类 算数函数 字符串函数 日期函数 转换函数 聚合函数 1.1算术函数 数据类型:NUMERIC 是大多数DBMS都支持的一种数据类型. 通过NUMBERIC(全体位 ...
- Code digest
private void travelDir(String filepath) { String threadName = Thread.currentThread().toString(); log ...