王垠:编程的宗派

导读:王垠:编程的宗派文/王垠总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”(OOP)好。既然现在出了两个帮派,就有人积极地做它们的帮众...

王垠:编程的宗派

文/王垠

总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”(OOP)好。既然现在出了两个帮派,就有人积极地做它们的帮众,互相唾骂和残杀。然后呢,又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问题的工具就是好工具!

我个人其实不属于这三帮人中的任何一个。

面向对象编程(Object-Oriented Programming)

如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所谓“面向对象语言”,其实就是经典的“过程式语言”(比如 Pascal),加上一点点抽象能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构,structure),它的本质就是一个从名字到数据的“映射表”(map)。你可以用名字从这个表里面提取相应的数据。比如 point.x,就是用名字'x'从记录 point 里面提取相应的数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即使你插入了新的数据成员,仍然可以用原来的名字来访问已有的数据,而不用担心下标错位的问题。

所谓“对象思想”(区别于“面向对象”),实际上就是对这种数据访问方式的进一步抽象。一个经典的例子就是平面点的数据结构。如果你把一个点存储为:

struct Point {  double x;  double y;}

本文由: 王垠:编程的宗派 http://王垠:编程的宗派 ,发布了解更多请点击链接。

Copyright © 2013-2016 /保留所有权利. 苏ICP备10096556号-1 友情链接:
深圳网站建设 92手游网 韩剧tv 顶点小说 电影
儿童画 筑楼技术源码网 spherical tent 百家乐网址 东莞开住宿票
战中文 教育文库 文库 网络推广公司
武动乾坤 b2b信息网 信息网 www.xinb2b.cn

百度统计代码