面向过程到面向对象再到面向函数

Date

@(朝天吼python技术)

关注最基本的实现方法,面向过程

拿到问题,识别输入输出,脑海里先产生一个实现输入到输出的大致思路。 如果这个开始按着思路去实现代码,就会写出一堆处理过程,这个时候,程序只有原始的输入输出和中间过程数据结构和一堆处理过程,如果把处理过程再分类处理一下变成各种模块(一些语言里叫做过程sub,一些语言里也叫做函数func)

关注数据和过程的有效管理,面向对象

为了实现各种过程,中途有一大堆的数据,首先暴露的问题就是数据是混乱的 ,这个时候,另一种编程设计思想就出来了,面向对象。

面向对象把各种实际问题中的实体映射成一个对象,对象里封装模拟实体店数据和动作(方法),动作也是一个过程。多个对象在程序里各自封装业务上好理解的数据,用接口(对外暴露出来的方法)互相交互,来完成任务。为了一些处理的中间环节,可能会虚拟出一些非实体店中间对象来辅助。

面向数据和过程的确定性,函数式编程

数据看起来好一点了,这时又有一些新的问题,对象里的方法也是一个处理过程,对外服务时可能涉及外部IO等交互操作,会产生不在预料中的问题,对内会修改数据,数据被其他人使用时也产生了不确定性。

于是需要把数据和过程按照确定性来分类,把不确定性的容易产生问题的单独归类。数据确定性就是不可变对象,数据无法被修改,过程的确定性就是函数式编程,每次给相同的参数总能返回固定的值,不回因为外部io变化,或者是依赖的数据被修改,而产生了不一致的值 …

more ...