面向对象的问题我作为自学的程序员, 绕了很多弯子, 缺了很多编程的基础理论作为前端我也能拉很多人下水, 因为很多写界面的人也是自学的编程语言从 Fortran 跟 Lisp 已经被研究了半个世纪, 理论成果也是连篇累牍我们常常觉得自己已经在编程了, 但是基于什么编程呢?首先编程当然是对真实世界的情况的模拟, 这一点作为基础当然问题关键是, 用什么来模拟?一类是表达式, 或者说递归嵌套的表达式, 比如((x * x) + (y * y))不过表达式功能有限, 注意到吗, 这里边是没有状态的那么, 有状态的对象怎么模拟? 面向对象编程(OOP)说, 用面向对象啊其实"对象(Object)"这个词有点滥用翻译了, 什么都是 Object 啊OOP 当中的对象非常特别, 特指有内部状态的对象比如鼠标的位置P, 通过P.get()读取, 会根据具体情况改变面向对象以此为基础, 说, 这可以模拟真实世界, 对象有内部状态于是编程就是各种对象通过接口交换内部状态, 而最终形成然而函数式编程来说, 它也有对象, 但并没有可变的那种对象Rich Hichkey 说, 一个值变来变去, 那就是不可靠的特别是在复杂的系统中, 甚至并行当中, 发生混乱了怎么定位其实函数式编程也有讲上边的问题, 真实世界各种状态, 怎么模拟?给了个例子, 比如英国国王是谁? 不清楚! 但是具体哪一年英国国王是谁? 知道了!
...
继续阅读
(16)