《编程导论(Java)·1.4.1 范式》
这个楼主,是我的学生么?2013年写的!
嗯。“编程范式或许是学习不论什么一门编程语言时要理解的最重要的术语”。这句话早在2005年出版《Java程序设计》(宋中山,严千钧编著,清华大学出版社)中写过。
可是,
"托马斯.库恩提出“科学的革命”的范式论之后,Robert Floyd在1979年图灵奖的颁奖演说中使用了编程范式一词。编程范式一般包含三个方面,以OOP为例:.....",好像在《编程导论(Java)》出版之前。只在上课的PPT中写过。除了关于编程范式的文字引用,该楼主其它的文字,并不是我想说的。假设是我的学生,我要打他的屁屁。
由于:
1.我并不希望将事件驱动编程、管道等 罗伯特•弗洛伊德(Robert W.Floyd) 在《编程的各种范式》中列举的一些“东西”称为编程范式。依照我的观点,编程范式必需源于计算机科学之根:一般递归函数、λ表达式、图灵机。再加上面向对象,4大范式。
其它。是一些小风格。比如回调、泛型等。
2.我不喜欢Multi-paradigm这个术语。依照托马斯•库恩的范式论,新旧范式是不可通约的、不可比較的。
所以,对于Java/C#这些命令型的面向对象语言,多种范式处于不同的层面,比如我们只在方法级别能够说它採用了命令范式。
3.某种程度上,面向对象除了新的视角和思考方式,以及LSP,它差点儿一无全部。
毕竟,各种面向对象编程语言吸收了命令范式和函数范式大量技术,依靠LSP从而构成自己的逻辑体系。
4.讨论面向对象范式时,我不会过于强调封装、继承和多态。这些东西能够看成PLP的语法现象。
如在Parnas原则/接口与实现的分离(separation of interfaceand implementation)的基础上。推广到类的接口,就须要封装这样的手段——使用訪问修饰符限定接口。
另外,方法/函数的封装,在C中就是基本概念——正宗的接口与实现分离;由于LSP——子类替代父类,自然就有了(纯)多态(现象);继承则是类层次的自然属性,并且我重复强调,类层次的父子类的继承关系带来了某些代码的复用性,可是,复用性不是设计类层次的原因。关于OOP的复用性,能够依赖的原则则是代码向上集中。父类设计时,很多其它採用抽象方法声明自己的接口。
5.类是数据和行为的封装,对么?我说人是有信仰的。你说人有肌肉,是原子构成的。
我可以说你不正确吗?所以。我希望大家看看power of ten这个视频。早在0.2.2中,说明:“面向对象技术的最基本观点:编程不是编写指令集。而是创造一个自我管理、彼此交互的对象的世界。”“从绝对终极的意义上说,编程就是编写一串计算机将亦步亦趋的指令集”;就如同人终于还是由原子构成的。你可以由此反对鬼神之说,可是,你不可以在社会科学或经济学中。用原子作为研究的基本单位,并且经济人假说本身也非常荒谬(好吧。有非常大的局限性)。
《编程导论(Java)·1.4.1 范式》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 跳出双重for循环的案例__________跳出了,则不再执行标签ok下的for循环代码
ok: for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { System.out.print("*" ...
- Laravel5.1学习笔记5 请求
HTTP 请求 #取得请求实例 #基本的请求信息 #PSR-7 请求 #取出输入数据 #旧的输入 #Cookies #文件 #取得请求实例(此部分文档5.1完全重写,注意) 要通过依赖注入获取当前HT ...
- mvc3结合spring.net-依赖注入
namespace Tuzi.Models.IService { public interface IPersonService { string say(string words); } names ...
- c++ 中一个类或者一个对象所占的字节数
转载博客:转载地址https://www.cnblogs.com/JingHuanXiao/p/6080726.html 一个空的class在内存中多少字节?如果加入一个成员函数后是多大?这个成员函数 ...
- hibernate_03_session详解
获得session对象有两种方法: 1)openSession 2)getCurrentSession 如果使用的是getCurrentSession需要在hibernate.cfg.xml文件中进行 ...
- AI:IPPR的数学表示-CNN可视化语义分析
前言: ANN是个语义黑箱的意思是没有通用明确的函数表示,参数化的模型并不能给出函数的形式,更进而不能表示函数的实际意义. 而CNN在图像处理方面具有天然的理论优势,而Conv层和Polling层,整 ...
- DNN结构演进History—CNN( 优化,LeNet, AlexNet )
本文相对于摘抄的文章已经有大量的修改,如有阅读不适,请移步原文. 以下摘抄转自于维基:基于深度学习的图像识别进展百度的若干实践 从没有感知域(receptive field) 的深度神经网络,到固定感 ...
- js开发性能(一)
随着js技术的发展,性能问题开始被越来越多的人关注,最近了解了一些关于前端性能的问题,这里主要讨论一下在js脚本加载和执行的过程中,我们应该怎么样来提高js的性能. js脚本的处理 初学前端的时候,我 ...
- 团体程序设计天梯赛-练习集-L1-030. 一帮一
L1-030. 一帮一 “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后, ...
- SUSE 11 SP3 搭建weblogic服务
环境的搭建和业务需求相关,仅供参考 环境: SUSE 11 SP3 安装步骤 创建一个weblogic组 创建一个用户名为weblogic的用户, 创建相关目录 上传jdk,脚本等 安装 创建用户及其 ...