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各种功能生成所需要的样板代码.在添加控制器的时候可以选择相应的模板以及实体对象来生成相应的模板代码. 首先定义一个模型类如下所示: ...
随机推荐
- 最短路径:Dijkstra,Bellman,SPFA,Floyd该算法的实施
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ4NzA1MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- iOS8发展~Swift(三)UI详细解释
一个.总结 使用Swift去完成iOS的UI接口,事实上,目前的想法和OC实现几乎一致,只是在措辞非常大的差异,修改前更更大的个人控制.为有纯代码强迫症,所以接下来创建一个纯代码动项目,然后在此基础上 ...
- Redis源代码分析(二十八)--- object创建和释放redisObject物
今天的学习更有效率.该Rio分析过,学习之间的另一种方式RedisObject文件,只想说RedisObject有些生成和转换.都是很类似的.列出里面长长的API列表: /* ------------ ...
- 类似的微博推断客户关系sql声明
类别似新浪微博的关注和共同关心 不知道别人是怎么设计的. 反正我是例如以下设计的 ID USER FRIEND 1 A B 2 B A 3 ...
- 孙陪你,了解它的权力--Kinect结合的发展Unity3D游戏应用开发
unity3d正在使用kinect三维模型数据控制(它切成脚本) 博主在做项目时须要利用kinect数据控制三维模型中人物的动作.但不是实时控制,而是利用之前获得的骨骼数据,直接控制.无需再利用脚本打 ...
- android 联系数据库
联系人数据库学习 2011-10-31(这是android2.3在接触db) 简单介绍 Android中联系人的信息都是存储在一个叫contacts2.db的数据库中.该数据库的路径是:/data/d ...
- 恢复SQLServer实例连接
原文:恢复SQLServer实例连接 译自: http://www.mssqltips.com/sqlservertip/2682/recover-access-to-a-sql-server-ins ...
- 将odbc扩展编译至nodejs程序集中
1. 下载nodejs https://github.com/joyent/node 2. 下载odbc for nodejs 扩展 https://registry.npmjs.org/odbc/- ...
- Computer Science 学习第四章--CPU 指令集和指令处理
Instruction set Y86 指令集 运算符:addl, subl, andl, and xorl 跳转符:jmp,jle,jl,je,jne,jge, andjg 条件符:cmovle, ...
- Instll meld in windows
在linux下用meld感觉颇为不错,但是在windows上真是折腾老久.p4merge也试了试, 但还是meld用起来更顺手. 使用 https://wiki.gnome.org/Meld/Wind ...