从算法+数据结构到MVC

--------------------

Pascal之父——Nicklaus Wirth,提出了著名公式:“算法+数据结构=程序”。

Nicklaus Wirth,1934年出生于瑞士,1963年在加州大学伯克利分校取得博士学位。取得博士学位后直接被以高门槛著称的斯坦福大学聘到刚成立的计算机科学系工作。在斯坦福大学成功的开发出Algol W以及PL360后,Nicklaus Wirth于1967年回到祖国瑞士,第二年苏黎世工学院他创建与实现了Pascal语言——当时世界上最受欢迎的语言之一。

后来他的学生Philipe Kahn毕业后和Anders Hejlsberg(Delphi之父)创办了Borland公司靠Turbo Pascal起家,很快成为了将Borland发展成为全球最大的开发工作厂商,这一切都不得不说要归工于PASCAL语言的魅力。PASCAL已经影响了整整几代的程序员,Nicklaus Wirth的思想还将会继续指引现在和以后的程序员前进的方向。

在九几年,C/S编程也是风光无限的。

后来,Java出现了,以及微软为了应对Java而推出了.Net,使得Delphi的市占率越来越少。

而今的Delphi:https://www.embarcadero.com/cn/products/rad-studio

--------------------

MVC模式(Model-View-Controller)把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC模式最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:

(控制器 Controller)- 负责转发请求,对请求进行处理。

(视图 View) - 界面设计人员进行图形界面设计。

(模型 Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

--------------------

虽然MVC早已出现,由于微软的MFC搞了很多手脚,偶还是通过Java得到了很好的理解。

在J2EE中,

视图(View)

视图(View)可能由Java Server Page(JSP)担任。生成 View 的代码则可能是一个servlet的一部分,特别是在客户端服务端交互的时候。

控制器(Controller)

Controller 可能是一个servlet。

除了可直接以J2EE来撰写外,亦可用其他框架来撰写,常见的有Struts2、Spring Framework……等等。

模型(Model)

Model 则是由一个实体Bean来实现。

--------------------

时间: 2024-08-25 02:10:36

从算法+数据结构到MVC的相关文章

算法数据结构02 /常用数据结构

目录 2算法数据结构02 /常用数据结构 1. 栈 2. 队列 3. 双端队列 4. 内存相关 5. 顺序表 6. 链表 7. 二叉树 2算法数据结构02 /常用数据结构 1. 栈 特性:先进后出的数据结构,有栈顶和栈尾 应用场景:每个 web 浏览器都有一个返回按钮.浏览网页时,这些网页被放置在一个栈中(实际是网页的网址).现在查看的网页在顶部,第一个查看的网页在底部.如果按'返回'按钮,将按相反的顺序浏览刚才的页面. 栈的方法: Stack():创建一个空的新栈. 它不需要参数,并返回一个空

算法数据结构01 /算法数据结构概述

目录 算法数据结构01 /算法数据结构概述 1. 算法 2. 评判程序优劣的方法 3. 时间复杂度 4. 数据结构 5. python数据结构性能分析 6. 总结 算法数据结构01 /算法数据结构概述 1. 算法 算法概述 算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务.一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,实

算法数据结构面试分享(一)- 解决算法问题的一般方法

先看一道题目: 给你一个整型数组,我想找出来最大的两个数,能帮我写一个算法吗?     拿到这个题目,大家会怎么想到用什么方法解决吗?我见过很多同学的回答是,先排序,取最大的两个数就好了.那么接下来我们的问题就变成了如何给这个整型数组排序了.我们有很多种方法,冒泡排序,快速排序等等.很有可能面试官就让你开始写具体的排序算法了.当然,有些有经验的同学可能会说了,排序我直接调用sort方法就好了哈.  其实,这两种情况都没有对错之分,只是没有敲开面试官的心扉,也没有给人眼前一亮,让自己脱颖而出. 再

计数排序 - 算法数据结构面试分享(五)

数组排序问题 - 计数排序 昨天我们留了一道题目"给你一个整型数组,里面出现的数在[0-100] 之间,能用最优化的方法帮我排序吗". 1. 确保我们理解了问题,并且尝试一个例子,确认理解无误. 这是一道排序算法题,我们学过很多排序的算法.不一样的是,它给定一个额外的条件,数组里的每个数字都在1-100之间.如果我们采取传统的排序算法,这个条件我们好像用不上.大家在面试的时候如果发现有条件没有用上,基本上我们给出的算法可能不是最优的,或者我们没有解决它最原始的需求.举个例子{50, 4

算法数据结构面试分享(六)数组排序问题(2) - 计数排序

数组排序问题(2) 昨天我们留了一道题目"给你一个整型数组,里面出现的数在[0-100] 之间,能用最优化的方法帮我排序吗". 1. 确保我们理解了问题,并且尝试一个例子,确认理解无误. 这是一道排序算法题,我们学过很多排序的算法.不一样的是,它给定一个额外的条件,数组里的每个数字都在1-100之间.如果我们采取传统的排序算法,这个条件我们好像用不上.大家在面试的时候如果发现有条件没有用上,基本上我们给出的算法可能不是最优的,或者我们没有解决它最原始的需求.举个例子{50, 46, 5

【基本算置顶】各大算法&&数据结构模板

板子,全是板子 更新日志(从2018.11.19开始) 2018.12.02 : 更新了数据结构->扫描线 2018.11.22 : 更新了数据结构->平衡树->FHQ Treap->维护区间操作 2018.11.20 : 更新了数论->博弈论->nim游戏 2018.11.20 : 更新了数据结构->平衡树->FHQ Treap 观摩本蒟蒻板子库的大佬数: 不断更新 一.数论 1.快速幂 2.欧拉函数 3.乘法逆元(线性求逆) 4.线性筛素数 5.扩展欧几

算法数据结构中有哪些奇技淫巧?

之前我也写过一两篇与算法技巧相关的文章 一些常用的算法技巧总结 [算法技巧]位运算装逼指南 今天的这篇文章,算是一种补充,同时会列举一些常见的算法题,如何用这些技巧来解决,通过使用这些方法,可以让一些算法题变的更加简单. 1.用 n & (n - 1)消去 n 最后的一位 1 在 n 的二进制表示中,如果我们对 n 执行 n = n & (n - 1) 那么可以把 n 左右边的 1 消除掉,例如 n = 1001 n - 1 = 1000 n = n & (n - 1) = (10

介绍:算法+数据结构

什么是计算机科学? 首先明确的一点就是计算机科学不仅仅是对计算机的研究,虽然计算机在科学发展的过程中发挥了重大的作用,但是它只是一个工具,一个没有灵魂的工具而已.所谓的计算机科学实际上是对问题.解决问题以及解决问题的过程中产生产生的解决方案的研究.例如给定一个问题,计算机科学家的目标是开发一个算法来处理该问题,最终得到该问题的解.或者最优解.所以说计算机科学也可以被认为是对算法的研究. 算法就是对问题进行处理且求解的一种实现思路或者思想. 如何形象化的理解算法 一个常胜将军在作战之前都会进行战略

【算法数据结构Java实现】时间复杂度为O(n)的最大和序列

1.背景 最大序列和问题一直以来是一个比较经典的算法题,看到这个问题,有很多解题的办法.今天看到了一种时间复杂度只为O(n)的解题算法,在这里记录下. 思路很简单,比方说有P1,P2,P3,P4.....这样一个序列,我们从P1开始求和,比如说在P5时求和数小于零,就可以断定.第一种情况,最大序列在P1~P5之间,或者说在P6~Pn之间.因为如果P1+P2+......+P5的和小于零,那么它可以看成一个数,而且是序列第一个数,则任何一个最大序列都不会包含这个数. 2.代码实现 package