zwvista

导航

编程漫谈系列(3)面向对象编程和函数型编程

面向对象编程(OOP)和函数型编程(FP)是当今程序世界的两大范式。

程序世界实际上只存在两种基本元素:数据和代码。
也可以认为是数据和函数,因为函数是代码的基本组织形式。
面向对象编程侧重的是数据。
函数型编程侧重的是代码(函数)。

以下对于面向对象编程的描述基于 Java 语言。
对于函数型编程的描述基于 Haskell 语言。

面向对象编程(Object Oriented Programming)

面向对象编程以对象为基本的编程手段。
对象是带附属品的数据,即胖数据。
万物皆对象。对象是名词,这个世界是名词的世界,是形形色色个体的世界。
函数是从属于对象的。从属于对象的函数叫做方法。
在纯粹的面向对象编程中是没有函数,只有方法。
纯粹由函数组成的对象被称为函数对象。

Everything is an object. Objects are nouns, so the world is comprised of nouns, full of various entities.
In a purely object oriented world, there are no functions but methods.

函数型编程(Functional Programming)

函数型编程以函数或闭包为基本的编程手段。
函数可以看成是一段具有入口和出口的有组织的代码。闭包是带附属品的函数,即胖函数。
万物皆函数。函数是动词。这个世界是动词的世界,是遍布工厂和管道的世界。
函数接收参数,返回值。带一个参数的函数被称为一元函数,带两个参数的函数被称为二元函数,以此类推。
数据实际上就是函数。数据是不带参数的函数,可以叫做零元函数。
数据可以从属于函数。带数据的函数叫做闭包。

Functions take parameters and return values.
Everything is a function. Functions are verbs, so the world is comprised of verbs, full of factories and pipes.

posted on 2018-07-19 08:45  zwvista  阅读(297)  评论(0编辑  收藏  举报