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各种功能生成所需要的样板代码.在添加控制器的时候可以选择相应的模板以及实体对象来生成相应的模板代码. 首先定义一个模型类如下所示: ...
随机推荐
- 【程序员小助手】Emacs,最强编辑器,没有之一
内容简介 1.Emacs简介 2.Emacs三个平台的安装与配置 3.自动补全插件 4.小编的Emacs配置文件 5.常用快捷方式 6.和版本控制系统的配合(以SVN为例) [程序员小助手]系列 在这 ...
- Android系统APN配置具体解释
Android 系统APN配置具体解释 这些天一直在调系统原生的Settings.apk里面APN配置的问题.在设置里面手动添加了APN配置选项.可是在界面上还是看不到.所以跟了下代码.原以为就是简 ...
- redis内存管理代码的目光
zmalloc.h /* zmalloc - total amount of allocated memory aware version of malloc() * * Copyright (c) ...
- How to Use NSLog to Debug CGRect and CGPoint
转载: http://iosdevelopertips.com/debugging/how-to-use-nslog-to-debug-cgrect-and-cgpoint.html CGPoint ...
- HDU 2203 亲串(kmp)
Problem Description 随着人们年龄的增长更大,更聪明还是越大越愚蠢,这是一个值,相同的问题Eddy也一直在思考,由于他在非常小的时候就知道亲和串怎样推断了,可是发现,如今长大了却不知 ...
- Team Foundation Server 2015使用教程--权限为读取器的团队成员连接tfs及checkin操作
- android4.4组件分析--service组件-bindService源代码分析
6.1.1. bindService 由于有前面分析startService的代码实现过程,则对于bindService的代码分析就不用那么具体介绍,在介绍流程的同一时候更关注一些细节上的部分. ...
- MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk
MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk 经ltib编译器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假设我们编写了相应的外部文件把Ramdisk往里 ...
- HDInsight HBase概观
HDInsight HBase概观 什么是HBase的? HBase它是基于HadoopApache开源NoSQL数据库.它提供了很多非结构化和半结构化数据一致性的随机存取能力的.它是仿照谷歌的Big ...
- Facebook 网页应用图文设置教程
最近在弄一个项目,需要使用Facebook进行登陆并且获取用户Facebook相关的数据.网上查找有关Facebook应用设置教程,中文资料中,要么介绍的是N版之前的API,要么是App端的教程.Fa ...